34.【日期】计算后续日期--北京理工大学编程题
生活随笔
收集整理的這篇文章主要介紹了
34.【日期】计算后续日期--北京理工大学编程题
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
我們經(jīng)常要計算,從今天往后N天之后是哪一天(哪年哪月哪日)。現(xiàn)在我們就可以編寫一個程序,推算指定日期之后的第N天是什么日期。
輸入:
? 年 月 日
? N
輸出:
(年月日+N天后的)年.月.日
| 測試用例 1 | 以文本方式顯示 | 以文本方式顯示 | 無限制 | 64M | 0 |
| 測試用例 2 | 以文本方式顯示 | 以文本方式顯示 | 無限制 | 64M | 0 |
?
#include <stdio.h> int main() {int y=1, m=1, d=1, n=0;scanf ("%d%d%d%d", &y, &m, &d, &n); //判斷輸入合法 if (n<0||m<1||d<1||m>12) return 0;if (m==2){if ((y%4==0&&y%100!=0)||y%400==0){if (d>29) return 0;}elseif (d>28) return 0;}else if (m==1||m==3||m==5||m==7||m==8||m==10||m==12)if (d>31) return 0;else if (m==4||m==6||m==9||m==11)if (d>30) return 0;for (int i=1; i<=n; i++){d++;if (d==29){ if (m==2){if ((y%4==0&&y%100!=0)||y%400==0)continue;else{m++;d=1;}}}else if (d==30){if (m==2){if ((y%4==0&&y%100!=0)||y%400==0){m++;d=1;}else continue;}}else if (d==31){if (m==4||m==6||m==9||m==11){m++;d=1;}else continue;}else if (d==32){if (m==1||m==3||m==5||m==7||m==8||m==10){d=1;m++;}if (m==12){y++;m=1;d=1;}}else continue;}printf ("%d.%d.%d\n", y, m, d);return 0;}總結(jié)
以上是生活随笔為你收集整理的34.【日期】计算后续日期--北京理工大学编程题的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 电脑专业英语1500词
- 下一篇: 北理乐学大学计算机实验报告,北理乐学实验