求C语言程序,我输入日期(年月日),然后输入前后加减多少天,得出那个日期是多少

求C语言程序,我输入日期(年月日),然后输入前后加减多少天,得出那个日期是多少,第1张

#include<stdio.h>

#include<conio.h>

#include<stdlib.h>

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)<day||day<=0)

{

printf("Error!\n")

getch()

exit(0)

}

}

if(month!=2)//当输入不是2月时,判断输入

{

if(month_date[month-1]<day||day<=0)

{

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()

}

while(DataModule1->ADO_cool->Eof==false)

{

Daytime=DataModule1->ADO_coolDaytime->Value.DateTimeString()

这里的“Daytime” 没有定义。你说的“别人”的程序可能定义的是全局变量。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/11244003.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-14
下一篇2023-05-14

发表评论

登录后才能评论

评论列表(0条)

    保存