У меня есть проект на C++, целью которого является создание календаря для любого месяца и года. Часть проекта требует, чтобы я сначала вычислил количество дней с 1 января 0000 года до любой указанной даты. Функция должна принимать три параметра, представляющих год, месяц и день. Я новичок в C++, поэтому, пожалуйста, сократите меня, если есть некорректно используемые команды или логика. Пока это то, что у меня есть, но число отключено на несколько дней, когда я его тестирую. Может кто-нибудь, пожалуйста, скажите мне, где мой код поступил не так?Как рассчитать количество дней с 1 января 0000 года до любой указанной даты, включая високосные годы?
int const day_of_forever(int const year, int const month, int const day)
{
int count[]={0,31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334, 365};
if ((year % 400==0) && (year % 100 != 0) && (year % 4 == 0)&& (month>=2))
((count[month-1]+day)+1);
return (count[month-1]+day)+(((year)*365)+1) +((year)/4)-(year/100)+(year/400);
}
void main()
{
int const year=2000;
int const day=1;
int const month=1;
int const something=day_of_forever(year,month,day);
print (something);
}
Mr. Debugging Tool может помочь вам отладить вашу программу. Каков был результат использования инструмента отладки? –
Вы забыли указать [Календарь закона 1752] (http://www.webexhibits.org/calendars/year-text-British.html) и различные разные даты в разных странах изменили календари. Кроме того, ваш код указывает, что все високосные годы равны нулю mod 400, что явно неверно. –
Возможно, в начале кода вы с ошибкой, так как функция 'main' возвращает' int'. Всегда. –