在專案中經常會顯示乙個時間,如果這個時間在今日內就顯示為時分秒,否則顯示為年月日。
這裡先給出乙個正確的版本:
#include #include using namespace std;
bool isintoday(long utc_time)
return false;
}std::string getstringdate(long utc_time)
std::string getstringtime(long utc_time)
void showtime(long utc_time)else
}int main()
在函式中
struct
tm *localtime(
const
time_t *);中返回的指標指向的是乙個全域性變數,如果把函式
bool
isintoday(
long
utc_time);寫成樣,會有什麼問題呢?
bool isintoday(long utc_time)
return false;
}
這裡把curdate和argsdate宣告成了指標。執行程式就會發現,這個函式返回的總是ture,為什麼呢?
因為在struct
tm* curdate =
localtime
(&timecur);中返回的指標指向的是乙個全域性變數,即curdate也指向這個全域性變數。
在struct
tm* argsdate =
localtime
(&utc_time);中返回額指標也指向的這個全域性變數,所以argsdate和cur指向的是同乙個全域性變數,他們的記憶體區域是同一塊。
在第二次呼叫localtime()時,修改了全域性變數的值,curdate也隨之改變,因此curdate == argsdate;所以返回的結果衡等於true。
C C 判斷傳入的UTC時間是否在今天
在專案中經常會顯示乙個時間,如果這個時間在今日內就顯示為時分秒,否則顯示為年月日。這裡先給出乙個正確的版本 include include using namespace std bool isintoday long utc time return false std string getstri...
Android判斷當前時間是否在某個時間段
開發中有時候需求是要我們判斷當前時間是否是在當天的某個時間段,比如判斷某個操作是否是在工作時間 這個時間可以自定義 只需要寫個方法如下 判斷當前系統時間是否在指定時間的範圍內 beginhour 開始小時,例如22 beginmin 開始小時的分鐘數,例如30 endhour 結束小時,例如 8 e...
iOS判斷當前時間是否在某個時間段
if self isbetweenfromhour 9 tohour 10 brief 判斷當前時間是否在fromhour和tohour之間。如,fromhour 8,tohour 23時,即為判斷當前時間是否在8 00 23 00之間 bool isbetweenfromhour nsintege...