10
社区成员
发帖
与我相关
我的任务
分享
2000年的1月1日,是那一年的第1天。
那么,2000年的5月4日,是那一年的第几天?
#include <stdio.h>
int main() {
int n = 1;//n为计算天数
int year = 2000;//2000年的1月1日
int month = 1;
int day = 1;
int year1, month1, day1=0;
int months[12] = {31,29,31,30,31,30,31,31,30,31,30,31 };//月份数组
printf("年:");//输入要计算的日期
scanf("%d",&year1);
printf("月:");
scanf("%d", &month1);
printf("日:");
scanf("%d", &day1);
if ((year % 400 == 0) || (year % 100 != 0 && year % 4 == 0)) {//判断今年是否为闰年
months[1] = 29;
}
else { months[1] = 28; }
for (; day <= months[month - 1]; ) {
day++;
n++;
if (day > months[month - 1]) {//小于这个月的日期
day = 1;
month++;
if (month > 12) {//月份不大于12
month = 1;
year++;
if ((year % 400 == 0) || (year % 100 != 0 && year % 4 == 0)) {//判定下年是否是闰年
months[1] = 29;
}
else { months[1] = 28; }
}
}
if (year == year1 && month == month1 && day == day1) {//如果到目标日期则结束运算
break;
}
}
printf("这是2000年1月1日过后的第%d天",n);
}