每天一個小題目——日期倒計時
阿新 • • 發佈:2019-01-09
題目描述
在經濟、科技日益發達的今天,人們對時間的把握越來越嚴格,對於一個一定影響力的公司的高管來說,他可能要將自己的行程提前安排到下個月。對於普通人來說,他也可能將幾天之後的安排已經提前做好。 請設計一個程式計算出今天距離未來的某一天還剩多少天。 假設今天是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;
}