賽馬網基本演算法之 日期倒計時

2021-07-23 13:18:09 字數 1953 閱讀 9193

題目描述

在經濟、科技日益發達的今天,人們對時間的把握越來越嚴格,對於乙個一定影響力的公司的高管來說,他可能要將自己的行程提前安排到下個月。對於普通人來說,他也可能將幾天之後的安排已經提前做好。

請設計乙個程式計算出今天距離未來的某一天還剩多少天。

假設今天是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日。輸入 輸入乙個日期格...