С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 55, средняя оценка - 4.73
Crudelis
Шаровик затейник
676 / 418 / 13
Регистрация: 06.05.2010
Сообщений: 1,109
#1

Алгоритм вычисления дня недели по дате - C++

22.10.2010, 21:02. Просмотров 8225. Ответов 6
Метки нет (Все метки)

Посдкажите алгоритм вычисления дня недели по дате( день, месяц, год).
C++
1
2
3
4
int a = (14 - month)/12;
int y = year - a;
int m = month + 12*a - 2;
int week = (day+y+(y/4)-(y/100)+(y/400)+(31*m)/12) % 7;
day,month,year - вводиться с клавиатуры

Этот алгоритм работает не правильно. 22.10.2010 показывает пятница, с 20 по 30.10.2010 показывает пятница
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.10.2010, 21:02
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Алгоритм вычисления дня недели по дате (C++):

Вычисление дня недели по дате - C++
здравствуйте. как можно вычислить день недели по дате? слышала про формулу Зеллера, но там мало что понятного Спасибо!

Определение дня недели по дате - C++
Помогите найти ошибку. Работает, но не корректно. Определяет не тот день. #include<stdio.h> #include<iostream> void main() { ...

Определение дня недели по дате - C++
Помогите исправить, неправильно находит день недели. int date_day::true_day() const { size_t totalDays = 0; bool...

Определение дня недели по введенной дате - C++
Доброго времени суток! Программу я составил, вводишь день,месяц и год, и день недели она выдаёт. Но вот только почему-то на один день...

Расчет дня недели по дате, исправьте ошибки - C++
Программа должна считать день недели по дате, использую по заданию какую то римскую формулу. #include <iostream> #include...

Написать программу, которая запрашивает у пользователя номер дня недели, затем выводит название дня недели - C++
Написать программу, которая запрашивает у пользователя номер дня недели, затем выводит название дня недели или сообщение об ошибке, если...

6
asics
Freelance
Эксперт С++
2850 / 1785 / 144
Регистрация: 09.09.2010
Сообщений: 3,841
22.10.2010, 21:30 #2
Тут что-то есть http://www.cyberforum.ru/cpp-beginne...tml#post887190
1
Crudelis
Шаровик затейник
676 / 418 / 13
Регистрация: 06.05.2010
Сообщений: 1,109
23.10.2010, 00:18  [ТС] #3
Asics^, благодарю, алгоритм в этой задаче рабочий)
0
TheMachinist
244 / 176 / 15
Регистрация: 14.06.2010
Сообщений: 422
23.10.2010, 18:51 #4
Crudelis, вас не затруднит представить этот алгоритм в С++?
А то я там многое недопонял.Например что это за параметр 'a' и что там за 'И' в Ит=Ит+И*B;
Буду очень благодарен
0
Anton159951
0 / 0 / 0
Регистрация: 27.03.2016
Сообщений: 1
28.03.2016, 10:00 #5
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
struct struct_date
{
short day;
short month;
short year;
};
 
int what_day(const struct struct_date* date)
{
int a = (14 - date->month) / 12;
int y = date->year - a;
int m = date->month + 12 * a - 2;
return (7000 + (date->day + y + y / 4 - y / 100 + y / 400 + (31 * m) / 12)) % 7;
}
остаток от деления Результат: 0 — воскресенье, 1 — понедельник и т. д.
0
zer0mail
2382 / 2013 / 201
Регистрация: 03.07.2012
Сообщений: 7,257
Записей в блоге: 1
28.03.2016, 10:26 #6
Зачем там 7000 (все равно остаток от него 0)?
0
deeps
0 / 0 / 0
Регистрация: 21.01.2015
Сообщений: 3
27.11.2017, 20:40 #7
Ещё здесь есть вариант решения задачи.
0
27.11.2017, 20:40
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.11.2017, 20:40
Привет! Вот еще темы с ответами:

Написать программу, которая по номеру дня недели (целому числу от 1 до 7) выдает в качестве результата название дня недели - C++
!!!!!

Определить номер дня недели для заданного номера дня года - C++
а как это примерно будет на C++ ?

Выведите номер дня недели для данного дня года - C++
Помогите,пожалуйста...Среда Free Pascal Дан порядковый номер дня года (отсчет идет с 1-го января). Требуется вывести номер дня недели...

Определить номер дня недели для заданного дня года - C++
Дни недели пронумерованы следующим образом: 0 — воскресенье, 1 — понедельник, 2 — вторник, ..., 6 — суббота. Дано целое число K, лежащее в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.