1.题目描述
给你一个字符串 date ,按 YYYY-MM-DD 格式表示一个 现行公元纪年法 日期。返回该日期是当年的第几天。
2.样例描述
3.思路描述
将日期中的年,月,日分别利用atoi转换位整型,建立一个12个月份天数的数组,从0到该日期月份前一月遍历,之前月份天数相加,最后加上当前月的天数。
4.代码展示
int dayOfYear(char * date){
int days[] = {0,31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
int year = atoi(date); //因为给定的日期是字符串形式,需要利用atoi转换成整型
int month = atoi(date+5);
int day = atoi(date+8);
if((year%4==0 && year%100!=0)|| year%400==0)//若位闰年,二月有29天
{
days[2]=29;
}
int day_nums=0;
for(int i=0;i<month;i++)
{
day_nums = day_nums + days[i];
}
day_nums = day_nums +day;
return day_nums;
}