输入年、月、日,计算出该日是该年的第几天。例如输入2018、3、1,输出60。
#include <stdio.h>
int main() {
int year, month, day;
scanf("%d %d %d", &year, &month, &day);
int days[12] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {
days[1] = 29;
}
int result = day;
for (int i = 0; i < month - 1; i++) {
result += days[i];
}
printf("%d\n", result);
return 0;
}
供参考:
#include<stdio.h>
int main()
{
int year, month, day, sum, i;
scanf("%d %d %d", &year, &month, &day);
for (i = 1, sum = 0; i < month; i++)
{
if (i == 2)
{
if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0)
sum += 29;
else
sum += 28;
}
else if (i == 4 || i == 6 || i == 9 || i == 11)
sum += 30;
else
sum += 31;
}
sum += day;
printf("%d", sum);
return 0;
}
不知道你这个问题是否已经解决, 如果还没有解决的话:置闰法则:四年一闰,百年不闰,四百年再闰。
我可以通过Python编写代码解决该问题。具体的解决方案如下:
date_str = input("请输入日期(格式: 年年年年年年月月日日):")
year = int(date_str[:4])
month = int(date_str[4:6])
day = int(date_str[6:])
import datetime
date = datetime.date(year, month, day)
day_of_year = date.timetuple().tm_yday
print(day_of_year)
完整代码如下:
import datetime
def get_day_of_year():
date_str = input("请输入日期(格式: 年年年年年年月月日日):")
year = int(date_str[:4])
month = int(date_str[4:6])
day = int(date_str[6:])
date = datetime.date(year, month, day)
day_of_year = date.timetuple().tm_yday
return day_of_year
day_of_year = get_day_of_year()
print(day_of_year)