一年中的第几天
2023-12-31 17:28:03
一年中的第几天
提示
给你一个字符串?
date
?,按?YYYY-MM-DD
?格式表示一个?现行公元纪年法?日期。返回该日期是当年的第几天。
第一版:?
int dayOfYear(char* date) {
int i=0;
int year=0,month=0,day=0;
while(date[i]!='-'){
year*=10;
year+=date[i]-'0';
i++;
}
i++;
year=(year%4==0&&year%100!=0)||year%400==0?1:0;
while(date[i]!='-'){
month*=10;
month+=date[i]-'0';
i++;
}
i++;
while(date[i]!='\0'){
day*=10;
day+=date[i]-'0';
i++;
}
if(month<3){
switch(month){
case 1:
day=day;
break;
case 2:
day+=31;
break;
}
}else{
switch(month){
case 12:
day+=30;
case 11:
day+=31;
case 10:
day+=30;
case 9:
day+=31;
case 8:
day+=31;
case 7:
day+=30;
case 6:
day+=31;
case 5:
day+=30;
case 4:
day+=31;
case 3:
day+=28+31;
break;
}
if(year){
day+=1;
}
}
return day;
}
?
?第二版;
int dayOfYear(char * date){
int year = atoi(date);
int month = atoi(date + 5);
int day = atoi(date + 8);
int amount[12] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
if (year % 400 == 0 || (year % 4 == 0 && year % 100 != 0)) {
++amount[1];
}
int ans = 0;
for (int i = 0; i < month - 1; ++i) {
ans += amount[i];
}
return ans + day;
}
文章来源:https://blog.csdn.net/alwaysandnever/article/details/135317402
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!