如何调整此代码的输出:
让我说当我输入2012年。输出应该是2012年2月29日星期三是闰年(与其他闰年相同)
如果我在2013年打字,输出应该是2013年不是闰年。
这是我目前的代码:
include <stdio.h>
int main()
{
int year;
printf("Enter a year to check if it is a leap year\n");
scanf("%d", &year);
if ( year%400 == 0)
printf("%d is a leap year.\n", year);
else if ( year%100 == 0)
printf("%d is not a leap year.\n", year);
else if ( year%4 == 0 )
printf("%d is a leap year.\n", year);
else
printf("%d is not a leap year.\n", year);
return 0;
}
我应该如何确定闰年2月29日的星期几?
答案 0 :(得分:0)
你的问题让我感觉就像是自己获得 并开始研究和编写代码。我找到了一段代码,通过输入日期模式返回一天。在你的情况下,如果它是闰年,日期将是29,2,年,如果它不是28,2,年。这里代表星期日,1代表星期一,同样6代表星期六。
/* A program to find day of a given date */
#include<stdio.h>
int dayofweek(int d, int m, int y)
{
static int t[] = { 0, 3, 2, 5, 0, 3, 5, 1, 4, 6, 2, 4 };
y -= m < 3;
return ( y + y/4 - y/100 + y/400 + t[m-1] + d) % 7;
}
/* Driver function to test above function */
int main()
{
int day = dayofweek(10, 10, 2014);
printf ("%d", day);
return 0;
}
如果您在代码中发现任何错误或难以对其进行更改。请让我知道我会尽力帮助。在您的代码中添加此代码可能会满足您的需求。
答案 1 :(得分:-1)
正如https://stackoverflow.com/a/21235587/3578315中所述
你可以使用一个班轮代码
weekday = (d+=m<3?y--:y-2,23*m/9+d+4+y/4-y/100+y/400)%7;
其中m = 2,d = 29,y =年份
工作日从星期日开始。 (0 - 星期日,1 - 星期一,......)