1. 程式人生 > 其它 >高階語言程式設計實驗4-3

高階語言程式設計實驗4-3

題目描述

小宗想知道兩個日期之間所間隔的天數,他希望有一個日期計算器,輸入兩個日期後能夠自動計算之間的天數。要求:設計相應的函式完成天數的計算,在主函式中驗證正確性。

輸入

按照年月日的順序輸入兩個日期,年月日之間用一個空格分隔;

輸出

輸出兩個日期之間的天數,即一個整數,整數後不需要換行;

樣例輸入Copy

2016 3 6
2017 1 1

樣例輸出Copy

301
 1 #include <iostream>
 2 using namespace std;
 3 int feb(int year)
 4 {
 5     if ((year % 4
== 0 && year % 100 != 0) || year % 400 == 0) 6 return 29; 7 else 8 return 28; 9 } 10 int days(int year, int month, int day) 11 { 12 int i, j, days, sum; int m[12]; 13 sum = 0; 14 for (j = 1; j < year; j++) 15 { 16 sum += 365; 17 if ((j % 4 == 0
&& j % 100 != 0) || j % 400 == 0) 18 sum++; 19 } 20 21 for (i = 1; i < 12; i++) 22 { 23 if (i == 1 || i == 3 || i == 5 || i == 7 || i == 8 || i == 10 || i == 12) 24 m[i] = 31; 25 else if (i == 4 || i == 6 || i == 9 || i == 11) 26 m[i] = 30
; 27 else 28 m[i] = feb(year); 29 } 30 for (i = 1; i < month; i++) 31 sum += m[i]; 32 days = sum + day; 33 return days; 34 } 35 int sub(int year1, int month1, int day1, int year2, int month2, int day2) 36 { 37 int sub; 38 sub = days(year2, month2, day2) - days(year1, month1, day1); 39 return sub; 40 } 41 int main() 42 { 43 int y1, y2, m1, m2, d1, d2; 44 cin >> y1 >> m1 >> d1 >> y2 >> m2 >> d2; 45 cout<<sub(y1, m1, d1, y2, m2, d2); 46 return 0; 47 }