对指定日期计算出N天后的日期问题

指定日期计算出N天后的日期问题问题描述:先输入起始日期,,再输入任意天数n,求n天后的日期。源代码一(参考=0BxF0QvTywzuRkLUFj6ulUQKYqp97CjUOZBV1UUmXoCkS9HNyOT2axHkcOsRLi-xlB_JE6KvdglSD23S35EUXK)#include<stdio.h><span style="font-family:SimHei;font-size:14px;"><strong>int 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("请输入日期:"); scanf("%d-%d-%d",&year,&month,&day); printf("请输入天数:"); scanf("%d",&daytime); sum=daytime+day; do {if(month==2){month_date[month-1]+=leapyear;}if(sum>month_date[month-1]){sum-=month_date[month-1];month++;if(month==13){year++;if(year%400==0||(year%100!=0&&year%4==0)){leapyear=1;}else{leapyear=0;}month=1;}} } while(sum>month_date[month-1]); day=sum; printf("\n第%d天后是%d-%d-%d",daytime,year,month,day); return 0;}</strong></span><span style="font-family: arial, 'courier new', courier, 宋体, monospace; font-size: 14px;"></span><span style="font-family:SimHei;font-size:14px;"><strong></strong></span>源代码二(自己写的)#include<stdio.h>int year,month,day,days,years;int a[13]={0,31,29,31,30,31,30,31,31,30,31,30,31};int ru(int year){if(year%400==0||year%4==0&&year%100!=0)return 1;elsereturn 0;}void rest(int days){int i;for(i=1;i<=12;i++){if(days-a[i]>0)days=days-a[i];else{ month=i;day=days; break;}} if(i-1==12) { year=year+1; if(!ru(year)) days++; rest(days); } year+=years;}int main(){int i;while(scanf("%d%d%d%d",&year,&month,&day,&days)==4){days=days-(a[month]-day);if(!ru(year)&&month<=2)days=days+1;for(i=month+1;i<=12;i++){if(days>a[i])days=days-a[i];elsebreak;}if(i-1==12){printf("%d\n",days);year++;years=0;while(days>=366){ days=days-366; years++;}for(i=1;i<=years;i++){if(!ru(year+i))days++;}rest(days);}else{month=i;day=days;}printf("%d-%d-%d\n",year,month,day);}return 0;}

一切伟大的行动和思想,都有一个微不足道的开始

对指定日期计算出N天后的日期问题

相关文章:

你感兴趣的文章:

标签云: