输入一个日期(*年*月*日),通过计算返回该日期的前一天日期值。C语言 5

输入一个日期(*年*月*日),通过计算返回该日期的前一天日期值(比如,输入1999-3-6,则输出1999-3-5)。提示:(1)定义一个结构体MyDate,包括三个成员... 输入一个日期(*年*月*日),通过计算返回该日期的前一天日期值(比如,输入1999-3-6,则输出1999-3-5)。
提示:
(1)定义一个结构体MyDate,包括三个成员(year、month、day)。
(2)定义一个函数MyDate PreDate(MyDate date),用来实现题目1所描述的功能。
(3)定义一个函数bool isLeapyear(int year),用来判断某一年是否是闰年。
展开
 我来答
笃侠6A
2014-12-31 · TA获得超过3734个赞
知道大有可为答主
回答量:3205
采纳率:75%
帮助的人:3209万
展开全部
#include<stdio.h>

typedef struct TDate{
int year,month,day;
} MyDate;

int isLeapyear(int y){
int r=y%400==0 || y%4==0 && y%100!=0;
return r;
}

MyDate input(){
MyDate d;
scanf("%d%d%d", &d.year, &d.month, &d.day);
return d;
}

void display(MyDate d){
printf("%4d-%02d-%02d\n", d.year, d.month, d.day);
}

MyDate PreDate(MyDate date){
MyDate td=date;
td.day--;
if(td.day==0){
td.month--;
if(td.month==0){
td.day=31;
td.month=12;
td.year--;
}else{
switch(td.month){
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
td.day=31; break;
case 4:
case 6:
case 9:
case 11:
td.day=30; break;
case 2:
td.day=( isLeapyear(td.year) ? 29 : 28 );
break;
}
}
}
return td;
}

void main(){
MyDate d1,d2;
d1=input();
display(d1);
d2=PreDate(d1);
display(d1);
display(d2);
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式