代码
#include<stdio.h>
int main(){
char date[10]={};
int j,k,n=0,year,month,day,x[]={0,31,28,31,30,31,30,31,31,30,31,30,31};
scanf("%s",&date);
year=(date[0]-'0')*1000+(date[1]-'0')*100+(date[2]-'0')*10+(date[3]-'0');
month=(date[5]-'0')*10+(date[6]-'0');
day=(date[8]-'0')*10+(date[9]-'0');
if((year%4==0&&year%100!=0)||(year%400==0)) x[2]=29;
for(j=1;j<=month;j++){
for(k=1;k<=x[j];k++){
if(j==month&&k>day){
printf("%d",n);
break;
}
n++;
}
}
return 0;
}
友情提示
1、因为要求输入字符串,所以要用到字符数组储存,为了后期运算,需要利用ASCII码将其储存为整型。
2、n用来累计天数。x数组用来存放每个月的天数。
题目描述
给你一个字符串 date
,按 YYYY-MM-DD
格式表示一个现行公元纪年法日期。
返回该日期是当年的第几天。
输入输出格式
输入格式 输入一个字符串 date
,按 YYYY-MM-DD
格式表示一个现行公元纪年法日期。;
输出格式 输出一个整数,表示该日期是当年的第几天。
输入输出样例1
输入 "2019-01-09"
输出 9
解释(可选) 给定日期是 2019
年的第九天。
输入输出样例2
输入 "2019-02-10"
输出 41
说明提示
date
表示的范围从 1900
年 1
月 1
日至 2019
年 12
月 31
日。