中易网

计算n天后的日期用c语言写,如2016-2-1 6000天后是什么日期

答案:4  悬赏:30  
解决时间 2021-02-02 10:43
计算n天后的日期用c语言写,如2016-2-1 6000天后是什么日期
最佳答案


#include
main()
{
int year,month,day;
int leapyear=0;//闰年时使用
int daytime=0;
int sum;
static int month_date[12]={31,28,31,30,31,30,31,31,30,31,30,31};
printf("请输入日期:(例如:2010 5 27)");
scanf("%d%d%d",&year,&month,&day);
if(year<=0||month>12||month<1)//判断输入是否正确
{
printf("error!\n");
getch();
exit(0);
}
if(year%400==0||(year%4==0&&year%100!=0))//判断是否为闰年
leapyear=1;//是就加1
if(month==2)//判断日是否输入正确,2月是特殊的因为分闰年和平年
{ if((month_date[month-1]+leapyear) {
printf("error!\n");
getch();
exit(0);
}
}
if(month!=2)//当输入不是2月时,判断输入
{
if(month_date[month-1] {
printf("error!\n");
getch();
exit(0);
}
}
printf("\n请输入天数:");
scanf("%d",&daytime);//输入第n天后
if(daytime<0)
{
printf("error!\n");
getch();
exit(0);
}
sum=daytime+day;//当前日期与n天相加
do
{
if(month==2)//判断当月是不是二月份
month_date[month-1]+=leapyear;
if(sum>month_date[month-1])
{
sum-=month_date[month-1];
month++;//超过当月天数,加一个月
if(month==13)//当月份超过12月时,重新返到1月
{
year++;//加一年
if(year%400==0||(year%4==0&&year%100!=0))//判断加一年后是不是闰年
leapyear=1;
else
leapyear=0;//不是闰年则为0
month=1;//因为12月的下一个月是1月
}
}
}while(sum>month_date[month-1]);//当加起来的天数少于当月的天数就停止循环
day=sum;
printf("\n第%d天后是%d %d %d",daytime,year,month,day);//输出
getch();
}
全部回答
#include <stdio.h> #include <stdlib.h> int Month[12]={31,28,31,30,31,30,31,31,30,31,30,31}; int isYear(int year) { if(year%4==0 || (year%100!=0 && year%400==0)) {Month[1]=29;return 1;} else {Month[1]=28;return 0;} } int main() { int year,a,month,b,day,c,n,week,z; printf("输入年月日(用空格间隔): "); scanf("%d %d %d",&year,&month,&day); printf("输入再过n天是: "); scanf("%d",&n); printf("输入今天是星期几1-7: ");        //星期六:6表示,星期天:7表示 scanf("%d",&week); a=year;b=month;c=day;                  //保存输入的年月日 int i; for(i=1;i<=n;i++) { day++; isYear(year); if(day>Month[month-1]) {day=1;month++;} if(month>12) {month=1;year++;} } printf("\n"); printf("今天是%d %d %d 星期%d\n",a,b,c,week); printf("%d天后是 %d %d %d",n,year,month,day); z=(week+n)%7;                     //判断星期几的表达式 switch (z) { case 0 :printf("星期日"); break; case 1 :printf("星期一"); break; case 2 :printf("星期二"); break; case 3 :printf("星期三"); break; case 4 :printf("星期四"); break; case 5 :printf("星期五"); break; case 6 :printf("星期六"); break; } return 0; }
DateTime today = DateTime.Now.AddDays(30);
#include <stdio.h> #define YEAR 28 #define RYEAR 29 int main(int argc, char const* argv[]) {     int month[12] = {31,28,31,30,31,30,31,31,30,31,30,31};     int crr[3] = {0};     int day = 0;     printf("%%d-%%d-%%d %%d, year, month, day, n\n");     scanf("%d-%d-%d%d", &crr[0], &crr[1], &crr[2], &day);     month[1]=(crr[0]%4==0&&crr[0]%100!=0)              ||(crr[0]%400==0) ? RYEAR : YEAR;     while(day>month[crr[1]-1]-crr[2]){         day -= month[crr[1]-1]-crr[2];         crr[2] = 0;         crr[1]++;         if(crr[1]==13)         {             crr[0]++;             crr[1] = 1;             month[1]=(crr[0]%4==0&&crr[0]%100!=0)                      ||(crr[0]%400==0) ? RYEAR : YEAR;         }     }     crr[2] += day;     printf("%d-%d-%d\n", crr[0], crr[1],crr[2]);     return 0; }
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
发简历给HR,简历是Word版本好还是pdf版本好
北京二里庄有条河,鱼有一斤多,但是有人说污
盘锦科信实业有限公司在什么地方啊,我要过去
净水器在淘宝里属于哪一类
1348888****这种号码是北京的,但是不是所有
中力便利店地址有知道的么?有点事想过去
化州市司法局宝圩司法所地址在哪,我要去那里
贾宝玉哪里人
描写儿童活泼可爱春天的诗
连云港金瑞海业有限公司地址在什么地方,想过
请问在防爆摄像机领域的知名品牌有哪些!!!
中国人民银行和静支行这个地址在什么地方,我
环境保护的宣传口号和标语
剑网三 奇穴干嘛用的
露露美容工作室地址在哪,我要去那里办事
推荐资讯
被人欺骗了好久婉转一点的词句
移动cpe设备,办理后放车上使用,经常被锁卡
缘友网吧在哪里啊,我有事要去这个地方
李准基上黄金渔场之膝盖道士综艺节目
怎样善意地提醒同性(男性)拉好裤子拉链
为什么会有浪?
我们青少年该不该有自己的隐私,如果是父母干
2018福建烟草专卖局(公司)招聘12人公告
我的笔记本是联想ideapad T430,我从大姨那借
一首女声英文歌,歌词有tell me beautiful,s
手机一直无服务,打不成电话,一开3g网才有信
动物办学阅读答案
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?