1. 程式人生 > >每天一個小題目——日期倒計時

每天一個小題目——日期倒計時

題目描述
在經濟、科技日益發達的今天,人們對時間的把握越來越嚴格,對於一個一定影響力的公司的高管來說,他可能要將自己的行程提前安排到下個月。對於普通人來說,他也可能將幾天之後的安排已經提前做好。 請設計一個程式計算出今天距離未來的某一天還剩多少天。 假設今天是2015年10月18日。

輸入
輸入一個日期格式為yyyy-MM-dd,不考慮日期是否小於今天。
樣例輸入
2015-10-19
輸出
輸出一個數字表示今天(2015年10月18日)距離該日期還剩多少天。
樣例輸出
1

程式碼如下:

#include<iostream>

using namespace std;

const int
month1[13] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; // 非閏年 const int month2[13] = {0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; // 閏年 int main(){ int year, month, day; scanf("%d-%d-%d",&year, &month, &day); // 輸入目標日期 int count; if (year == 2015
){ // 在2015 年 count = day; for (int i = 10; i < month; ++i ) count += month1[i]; count -= 18; } else{ // 大於2015 年 count = 74 + day; int k; for ( k = 2016
; k < year; ++k) // 小於當前年 if ((k % 4 == 0 && k % 100 != 0) || k % 400 == 0) // 閏年 count += 366; else count += 365; for (int i = 1; i < month; ++i){ if ((k % 4 == 0 && k % 100 != 0) || k % 400 == 0) // 閏年 count += month2[i]; else count += month1[i]; } } cout << count << endl; return 0; }