終于寫對(duì)了,歡迎借鑒
#include <stdio.h>
int main()
{
int year = 2008;
int month =8;
int day = 8;
int sum;
switch(month)
{
case 1:sum = 0;break;
case 2:sum = 31;break;
case 3:sum = 59;break;
case 4:sum = 90;break;
case 5:sum = 120;break;
case 6:sum = 151;break;
case 7:sum = 181;break;
case 8:sum = 212;break;
case 9:sum = 243;break;
case 10:sum = 273;break;
case 11:sum = 304;break;
case 12:sum = 334;break;
case 13:sum = 365;break;
default:
printf("%s\n","一年當(dāng)中有12個(gè)月");
break;?
}
if(year%4==0 && year%100!=0)
{
sum += (day+1);
}
else
{
sum += day;
}
printf("%d年%d月%d日是該年的第%d天\n",year,month,day,sum);
return 0;
}
2021-02-05
這樣更方便看些:
#include <stdio.h>
int years_month_day(int years,int months);
int days;
int main()?
{?
? ? /* 定義需要計(jì)算的日期 */
? ? int year = 2008;
? ? int month = 8;
? ? int day = 8;
? ? /*
? ? ?* 請(qǐng)使用switch語句,if...else語句完成本題
? ? ?* 如有想看小編思路的,可以點(diǎn)擊左側(cè)任務(wù)中的“不會(huì)了怎么辦”
? ? ?* 小編還是希望大家獨(dú)立完成哦~
? ? ?*/
int i,j;
int year_month_day=0; //記錄2008-8-8日所在該年的天數(shù)
for(i=1;i<month;i++) //8月前的天數(shù)(不包含8月)
{
years_month_day(year,i); //刷新days天數(shù)
year_month_day += days; //疊加月份天數(shù)
printf("%d月有%d天,現(xiàn)在疊加天數(shù)是%d天\n",i,days,year_month_day);
}
year_month_day += 8 ; //加上最后的8天
? ? printf("%d年%d月%d日是該年的第%d天\n",year,month,day,year_month_day);
? ??
return 0;
}
int years_month_day(int years,int months)
{
? ? //通過調(diào)用該函數(shù)來判斷該月的天數(shù)
? ? switch(months)
? ? {
? ? ? ? //將兩個(gè)特殊的月份提出來
? ? ? ? case 2:
? ? ? ? ? ? if( years%100==0 && years%400==0 || years%4==0 && years%100!=0) //判斷是否是閏年,閏年2月29天,平年28
? ? ? ? ? ? {days=29;}
? ? ? ? ? ? else
? ? ? ? ? ? {days=28;}
break;
? ? ? ? case 8:
? ? ? ? ? ? days=31;
break;
? ? ? ? //判斷其他月份天數(shù),默認(rèn)奇數(shù)為31天,偶數(shù)為30天
? ? ? ? default:
? ? ? ? ? ? if(months % 2 == 0) //該月份為偶數(shù)
? ? ? ? ? ? {days=30;}
? ? ? ? ? ? else
? ? ? ? ? ? {days=31;}
break;
? ? }
return 0;
}
2021-02-05
或者使用我的,能夠判斷年份來計(jì)算天數(shù):
2020-12-19
#include <stdio.h>
int main()?
{?
? ? int year = 2008;
? ? int month = 8;
? ? int day = 8;
? ? int i,j;
? ? if(year%100==0&&year%400==0||year%4==0&&year%100!=0)i=1;
? ? else i=0;
? ? switch(month)
? ? {
? ? ? ? case 1:j=day;break;
? ? ? ? case 2:j=31+ day;break;
? ? ? ? case 3:j=31+ 28+ day;break;
? ? ? ? case 4:j=31+ 28+ 31+ day;break;
? ? ? ? case 5:j=31+ 28+ 31+ 30+ day;break;
? ? ? ? case 6:j=31+ 28+ 31+ 30+ 31+ day;break;
? ? ? ? case 7:j=31+ 28+ 31+ 30+ 31+ 30+ day;break;
? ? ? ? case 8:j=31+ 28+ 31+ 30+ 31+ 30+ 31+day;break;
? ? ? ? case 9:j=31+ 28+ 31+ 30+ 31+ 30+ 31+ 31+ day;break;
? ? ? ? case 10:j=31+ 28+ 31+ 30+ 31+ 30+ 31+ 31+ 30+day;break;
我的也對(duì)了
? ? ? ? case 11:j=31+ 28+ 31+ 30+ 31+ 30+ 31+ 31+ 30+ 31+day;break;
? ? ? ? case 12:j=31+ 28+ 31+ 30+ 31+ 30+ 31+ 31+ 30+ 31+ 30+ day;break;
? ? }
? ? if(i==1)j+=1;
? ? printf("%d年%d月%d日是該年的第%d天",year,month,day,j);
? ? return 0;
}