題目描述
在經濟、科技日益發達的今天,人們對時間的把握越來越嚴格,對於乙個一定影響力的公司的高管來說,他可能要將自己的行程提前安排到下個月。對於普通人來說,他也可能將幾天之後的安排已經提前做好。
請設計乙個程式計算出今天距離未來的某一天還剩多少天。
假設今天是2023年10月18日。 輸入
輸入乙個日期格式為yyyy-mm-dd,不考慮日期是否小於今天。
樣例輸入
2015-10-19 輸出
輸出乙個數字表示今天(2023年10月18日)距離該日期還剩多少天。
樣例輸出1
時間限制
c/c++語言:1000ms
其它語言:3000ms
記憶體限制
c/c++語言:65536kb
其它語言:589824kb
實現**:
*#include#includeusing namespace std;
int main();
now.tm_year = 2015-1900;
now.tm_mon = 10-1;
now.tm_mday = 18;
time_t now_sec = mktime(&now);
char input[100];
gets(input);
char *pch = strtok(input, "-");
char * res[3];
int i = 0;
while (pch != null)
struct tm input_t = ;
input_t.tm_year = atoi(res[0]) - 1900;
input_t.tm_mon = atoi(res[1]) - 1;
input_t.tm_mday = atoi(res[2]);
time_t input_second = mktime(&input_t);
cout << (input_second - now_sec) / 24 / 3600 << endl;
}
主要思路是將起始時間的秒數算出來,然後再計算出輸入的日期的秒數,最後將秒數轉換為天數即為倒計時的天數。在上面的程式中使用了字串分割的方法來
分割年、月、日。其還可以利用sscanf利用類似正規表示式來處理。其中關於時間的幾個函式需要注意:
time_t是乙個long型的數來表示秒數;
tm為時間結構體,其中包括了year,month,day等屬性;
mktime是將乙個表示時間的結構體tm轉換為秒數(從2023年開始)time_t;
localtime()將time_t轉換為乙個指向tm的指標;
asctime()轉換為可讀的時間。
改進後的**:
#include#include#includeusing namespace std;
int main();
now.tm_year = 2015-1900;
now.tm_mon = 10-1;
now.tm_mday = 18;
time_t now_sec = mktime(&now);
struct tm input_t = ;
int year, month, day;
scanf("%d-%d-%d", &year, &month, &day);
input_t.tm_year = year - 1900;
input_t.tm_mon = month - 1;
input_t.tm_mday = day;
time_t input_second = mktime(&input_t);
cout << (input_second - now_sec) / 24 / 3600 << endl;
return 0;
}
日期倒計時
題目描述 在經濟 科技日益發達的今天,人們對時間的把握越來越嚴格,對於乙個一定影響力的公司的高管來說,他可能要將自己的行程提前安排到下個月。對於普通人來說,他也可能將幾天之後的安排已經提前做好。請設計乙個程式計算出今天距離未來的某一天還剩多少天。假設今天是2015年10月18日。輸入 輸入乙個日期格...
日期倒計時
日期倒計時 題目描述 在經濟 科技日益發達的今天,人們對時間的把握越來越嚴格,對於乙個一定影響力的公司的高管來說,他可能要將自己的行程提前安排到下個月。對於普通人來說,他也可能將幾天之後的安排已經提前做好。請設計乙個程式計算出今天距離未來的某一天還剩多少天。假設今天是2015年10月18日。輸入 輸...
日期倒計時
題目描述 在經濟 科技日益發達的今天,人們對時間的把握越來越嚴格,對於乙個一定影響力的公司的高管來說,他可能要將自己的行程提前安排到下個月。對於普通人來說,他也可能將幾天之後的安排已經提前做好。請設計乙個程式計算出今天距離未來的某一天還剩多少天。假設今天是2015年10月18日。輸入 輸入乙個日期格...