#include <stdioh>
int main(void)
{
int y1, m1, d1;
int y2, m2, d2;
int i, sum = 0;
int month[12] = {31, 28, 31, 30, 31, 30, 31, 31, 30 ,31, 30 ,31};
/input two dates/
scanf("%d%d%d", &y1, &m1, &d1);
scanf("%d%d%d", &y2, &m2, &d2);
/sum up the year between y1 and y2/
for (i = y1 + 1; i < y2; ++i)
if (i % 400 == 0 || i % 100 != 0 && i % 4 == 0) sum += 366;
else sum += 365;
/sum up the remaining days in y1/
for (i = m1; i < 12; ++i)
sum += month[i];
sum += month[m1 - 1] - d1;
if (m1 <= 2 && (y1 % 400 == 0 || y1 % 100 != 0 && y1 % 4 == 0)) ++sum;
/sum up the past days in y2/
for (i = 0; i < m2; ++i)
sum += month[i];
sum += d2;
if (m2 > 2 && (y1 % 400 == 0 || y1 % 100 != 0 && y1 % 4 == 0)) ++sum;
printf("The total days is %d\n", sum);
return 0;
}
//我自己写的,不是很好,见笑了。
int
isleapyear(int
year)
{
if((year%4==0&&year%100!=0)||(year%400==0))
return
1;
else
return
0;
}
main()
{
int
m,y;
printf("请输入正确的年月,例如:2008-8。\n");
scanf("%d-%d",&y,&m);
if
((m>12)||(m==0))
printf("请输入正确的月份。\n");
switch(m){
case
2:printf("%d年%d月是小月,%d天。",y,m,(28+isleapyear(y)));break;
case
4:
case
6:
case
9:
case
11:printf("%d年%d月是小月,30天。",y,m);break;
default:printf("%d年%d月是大月,31天。",y,m);break;
}
}
#include<stdioh>
void main()
{
int year,num,week_x,week_y;//num表示天数,week_x表示有多少周,week_y表示星期几
printf("请输入天数:\n");
scanf("%d",&num);
week_x=num/7;//计算出第几周
week_y=num%7+3;//由于2014年12月31日是星期三
printf("现在是2015年%d周的星期%d\n",week_x,week_y);
}
希望采纳!!!!
你的switch语句很有问题,而且你很多语句的括号只有一半,比如scanf语句和default那句。可以这么说,你的语法还不对,算法也有问题。我写了一个,你自己看看。
#include<stdioh>
void main()
{
int day,month,year,sum,i;
int y[12]={31,28,31,30,31,30,31,31,30,31,30,31};
printf("please input year,month,day\n");
scanf("%d%d%d",&year,&month,&day);
for(i=0,sum=0;i<month-1;i++)sum+=y[i];
sum+=day;
if(year%400==0||year%4==0&&year%100!=0&&month>2)sum+=1;
printf("The days are%d\n",sum);
}
以上就是关于如何用C语言计算日期间离天数全部的内容,包括:如何用C语言计算日期间离天数、C语言程序求任意年月该月的天数、c语言 输入天数并计算这个天数是几周后的周几 假如今天周五等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)