题解 | #计算日期到天数转换#
计算日期到天数转换
https://www.nowcoder.com/practice/769d45d455fe40b385ba32f97e7bcded
解题思路
这题首先要判断年份是不是闰年,因为闰年的2月多出一天
根据上面规则可以列一个表达式如代码中第10行
我是设置了一个数组分别存对应月份包含的天数,闰年和不是闰年分开。
然后天数是目标月份-1前的所有天数相加再加这个月的天数
如1982 3 4
判断出不是闰年
天数等于1-2天数之和31+28
然后再加上4
得到63天
#include <stdio.h> int main() { int y=0,m=0,d=0; int i=0; int day=0; int lib[12][2]={{31,31},{28,29},{31,31},{30,30},{31,31},{30,30},{31,31}, {31,31},{30,30},{31,31},{30,30},{31,31}}; scanf("%d %d %d",&y,&m,&d); if((y%100!=0 && y%4==0)||(y%100==0 && y%400==0))//判断是不是闰年 { for(i=0;i<m-1;i++) { day+=lib[i][1]; } day+=d; } else { for(i=0;i<m-1;i++) { day+=lib[i][0]; } day+=d; } printf("%d",day); return 0; }