PTA-后天日期-C语言switch选择结构

题目:给定一个日期,格式为yyyy-mm-dd(年份-月份-日期),计算并输出后天的日期,格式为yyyy.mm.dd(4位年份.2位月份.2位日期)。例如:输入2001-12-31,输出为:2002.01.02。

输入格式:

输入以"-"分隔的年月日。

输出格式:

输出计算后的后天的日期,以"."分隔。行末无多余字符。

输入样例 1:

2001-12-31

输出样例 1:

2002.01.02

输入样例 2:

2008-2-28

输出样例 2:

2008.03.01

分析:本题求后天日期,需要包含年月日,所以应该设置六个变量,分别表示输入的年月日以及后天的年月日。需要注意的是题目中涉及的年月日,求后天日期时要看看年,月,日三者的变化。编者设置y1,m1,d1;y2,m2,d2表示前后的年月日。接下来详细阐述各个变量的变化。

首先考虑年的变化。一般情况下年份保持不变,即y1=y2。当日期取到12月30日和12月31日时,年份变大,即y2=y1+1。12月可以单独拿出讨论。

其次考虑月的变化。由于每月的天数不一致,所以分三种情况讨论。每月有31天的:1、3、5、7、8、10 (12月单独讨论)每月有30天的:4、6、9、11。2月特殊,单独讨论。当日期小于等于每月天数-2时,月份不变,日期+2(例:2023-1-27  27<=29  m2=m1;d2=d1)

否则月份+1,日期改变,具体日期变化如下。

每月有31天时,d2=d1+2-31  =>d2=d1-29;

每月有30天时,d2=d1+2-30  =>d2=d1-28;

m2 = m1+1 ;

当m1=2时,需判断2月具体有多少天,此时用年份m1判断该年是否为闰年,是闰年,二月有二十九天;是平年,二月有二十八天。

判断闰年的方法:年份可以被4整除,但不能被100整除。或者年份可以被400整除。

接下来判断月份和日期的变化,方法同上。

最后注意输出格式要求2位月份和日期,需要用"%02d"

如有不当之处,欢迎各位批评指正😜

 

 

6a4edafb0c3d4bbe855b034d5569ed27.jpg

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大海里的云朵

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值