Форум программистов, компьютерный форум CyberForum.ru

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 55, средняя оценка - 4.73
Crudelis
Шаровик затейник
 Аватар для Crudelis
668 / 410 / 13
Регистрация: 06.05.2010
Сообщений: 1,109
22.10.2010, 21:02     Алгоритм вычисления дня недели по дате #1
Посдкажите алгоритм вычисления дня недели по дате( день, месяц, год).
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 показывает пятница
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.10.2010, 21:02     Алгоритм вычисления дня недели по дате
Посмотрите здесь:

Написать программу, которая запрашивает у пользователя номер дня недели, затем выводит название дня недели C++
C++ вычисление дня недели по дате
C++ Определение дня недели по введенной дате
Написать программу, которая по номеру дня недели (целому числу от 1 до 7) выдает в качестве результата название дня недели C++
C++ Определить день недели на который приходится заданная дата
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
asics
Freelance
Эксперт C++
 Аватар для asics
2839 / 1776 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
22.10.2010, 21:30     Алгоритм вычисления дня недели по дате #2
Тут что-то есть http://www.cyberforum.ru/cpp-beginne...tml#post887190
Crudelis
Шаровик затейник
 Аватар для Crudelis
668 / 410 / 13
Регистрация: 06.05.2010
Сообщений: 1,109
23.10.2010, 00:18  [ТС]     Алгоритм вычисления дня недели по дате #3
Asics^, благодарю, алгоритм в этой задаче рабочий)
TheMachinist
 Аватар для TheMachinist
242 / 174 / 15
Регистрация: 14.06.2010
Сообщений: 422
23.10.2010, 18:51     Алгоритм вычисления дня недели по дате #4
Crudelis, вас не затруднит представить этот алгоритм в С++?
А то я там многое недопонял.Например что это за параметр 'a' и что там за 'И' в Ит=Ит+И*B;
Буду очень благодарен
Anton159951
0 / 0 / 0
Регистрация: 27.03.2016
Сообщений: 1
28.03.2016, 10:00     Алгоритм вычисления дня недели по дате #5
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 — понедельник и т. д.
zer0mail
2190 / 1873 / 187
Регистрация: 03.07.2012
Сообщений: 6,668
Записей в блоге: 1
28.03.2016, 10:26     Алгоритм вычисления дня недели по дате #6
Зачем там 7000 (все равно остаток от него 0)?
Yandex
Объявления
28.03.2016, 10:26     Алгоритм вычисления дня недели по дате
Ответ Создать тему
Опции темы

Текущее время: 16:09. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru