乍一看很复杂,要输入输出有效性判断,加日期,每个月天数还不一样,还得跨年跨月的,闰年我也忘了咋定义的,不过不慌,都是纸老虎,咱们一步步来,先看看这个闰年咋回事。
逻辑就是被一百整除的还需被四百整除的是闰年,不被一百整除的被4整除是闰年,故闰年判断的代码如下:
下个模块就是判断输入有效性,结构体的年份四位数,大于一千小于9999,月份在一和12之间,日期1、3、5、7、8、10、12月最大31,2月结合年份判断,闰年29,平年28,其余最大30,这么一看还挺复杂,结合后续判断需要,我们把这个最大天数月份表先构建出来:
最后就是根据已有日期计算新日期了,这个复杂在情况多,跨月跨年,但是仔细想想操作也很少,天数溢出了就月份加加日期归一呗,无非多一次月份等于12的跨年判断,过一个月就减去剩余天数,代码如下:
最后就是主函数了,定义结构体,输入起始日期和days,判断输入有效性,计算新日期,就这一套流程,代码如下:
写在后面
这套代码其实并不能运行,蹦出十来个错,应该是哪结构不对劲了,但是编译环境简陋,用平板的C++编译器,找错很费劲,就这么着吧;但是逻辑通过写这篇文章的时候又梳理了一遍,应该是没啥问题。
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。