#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","一年当中有12个月");
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;
}
这样更方便看些:
#include <stdio.h>
int years_month_day(int years,int months);
int days;
int main()
{
/* 定义需要计算的日期 */
int year = 2008;
int month = 8;
int day = 8;
/*
* 请使用switch语句,if...else语句完成本题
* 如有想看小编思路的,可以点击左侧任务中的“不会了怎么办”
* 小编还是希望大家独立完成哦~
*/
int i,j;
int year_month_day=0; //记录2008-8-8日所在该年的天数
for(i=1;i<month;i++) //8月前的天数(不包含8月)
{
years_month_day(year,i); //刷新days天数
year_month_day += days; //叠加月份天数
printf("%d月有%d天,现在叠加天数是%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)
{
//通过调用该函数来判断该月的天数
switch(months)
{
//将两个特殊的月份提出来
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;
//判断其他月份天数,默认奇数为31天,偶数为30天
default:
if(months % 2 == 0) //该月份为偶数
{days=30;}
else
{days=31;}
break;
}
return 0;
}
或者使用我的,能够判断年份来计算天数:
#include <stdio.h>int years_month_day(int years,int months);int days;int main() { /* 定义需要计算的日期 */ int year = 2008; int month = 8; int day = 8; /* * 请使用switch语句,if...else语句完成本题 * 如有想看小编思路的,可以点击左侧任务中的“不会了怎么办” * 小编还是希望大家独立完成哦~ */ int i,j; int year_month_day=0; //记录2008-8-8日所在该年的天数 for(i=1;i<month;i++) //8月前的天数(不包含8月) { years_month_day(year,i); //刷新days天数 year_month_day += days; //叠加月份天数 printf("%d月有%d天,现在叠加天数是%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){ //通过调用该函数来判断该月的天数 switch(months) { //将两个特殊的月份提出来 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; //判断其他月份天数,默认奇数为31天,偶数为30天 default: if(months % 2 == 0) //该月份为偶数 {days=30;} else {days=31;} break; } return 0;}
#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;
我的也对了
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;
}