Цель состоит в том, чтобы найти первый день года, а затем рассчитать на основе этого календари и високосные годы.Я сталкиваюсь с проблемой;в то время как классу была дана формула (невозможно использовать массивы или функции), я могу получить правильный результат для большинства заданных лет, кроме случаев, когда дело доходит до вычисления субботы (0 для остатка послемодуль.)
Моя формула не подходит?
Я свяжу страницу, которая разбивает формулу, и, конечно, предоставлю мою.
** Вот страница с формулой: **
MathФорум - Формула на первый день года
Вот моя формула с моим кодом:
//Calculating Dates:
//N = d + 2m + [3(m+1)/5] + y + [y/4] - [y/100] + [y/400] + 2
//N = 1 + 2(13) + [3(13+1)/5] + year_int + [year_int/4] - [year_int/100] +
//[year_int/400] + 2
// I'm using a hard-coded "13" to represent January in the place of m
day_one =
1 + 2*(13) + 3*(13 + 1)/5 + year_int + (year_int / 4) - (year_int / 100) + (year_int / 400) +
2;
day_one = day_one % 7;
if (day_one < 0 || day_one >= 7) {
printf("Invalid Day\n");
} else {
switch (day_one) {
case 1:
weekday = "Sunday";
printf("%s", weekday);
break;
case 2:
weekday = "Monday";
printf("%s", weekday);
break;
case 3:
weekday = "Tuesday";
printf("%s", weekday);
break;
case 4:
weekday = "Wednesday";
printf("%s", weekday);
break;
case 5:
weekday = "Thursday";
printf("%s", weekday);
break;
case 6:
weekday = "Friday";
printf("%s", weekday);
break;
case 0:
weekday = "Saturday";
printf("%s", weekday);
break;
default: printf("Error");
break;
}
}
Я действительно ценю любую помощь, я 'м только ищет указаний.
Спасибо!