乙個有趣的函式 關於時間

2021-05-23 15:25:11 字數 717 閱讀 9251

最近做專案中要做乙個限制每天領獎的次數,以及每週的領獎的次數。如何判斷上次記錄的時間是否和今天是同一天呢?可能大家一開始的思路就是過24小時不就一天了嗎?呵呵,確實不錯,可是現在區分的是:是否是相同的一天。這就清晰了,只要知道今天是今年的多少天和上次記錄的時間一比較就可以了唄。我把**貼一下,由於是在vs2008環境下編譯通過的,gcc我沒試,要是有人在gcc不好使就看看時間轉換的那個函式就行了。

然後關鍵說說如何檢測同一周呢,這個tm(不知道tm的去查msdn就行了)結構體裡沒有定義今年的週數。但是可以獲取乙個時間是這個時間對應的周的第幾天。通過這個思路不就很好解決了嗎?我用7減去時間對應的tm_wday得到的差值和現在的時刻減去當時的時刻的天數作比較,如果小於的話就是還在本週。可能有點繞,我直接貼**,大家就理解了。

這期間有句如果weekday等於0就讓它等於7,這個是由於星期在外國和咱理解的不一樣,他們從週日開始一周的開始。而咱們是周一開始計算一周的開始,這樣按照tm返回的週日就和咱們認知的星期對應不上了。周一到週日不能成等差數列。所以就自己構造乙個咱們自己認知的星期。別看我現在說的輕鬆,當時就沒轉過勁來,非要從零開始計算這樣就陷入乙個誤區了,應為從零開始的話,是用的上週的天數。自然得到的結果就不對了。

從這個小小的例項中,我們可以看見大家的大腦在幾千年的不斷進化中思考問題的方式總是帶有慣性的。遇到乙個問題我們先會考慮它的定義,然後從定**決問題。可是我們總是不能及時的考慮邊界條件,可能思維思考方式的維數不夠,不能立體的多執行緒同時思考問題。

乙個有趣的函式locals

這個函式可以用字典方式顯示出函式中的區域性變數,比如下面的程式 def func a 1 b 2print locals func 列印出來的區域性變數如下 這樣看起來,明顯區域性變數被當成字典存於locals中了,因此,我們可以寫乙個稍微複雜的程式,根據傳入引數,直接呼叫內部函式,如下所示 def...

關於乙個有趣遞增的心得

首先申明這是乙個藍點工作室的任務,題目是這樣的 要求編寫乙個程式,實現從鍵盤輸入n 1 n 9 然後輸出一下內容 1 12 22 24 3 33 333 369 n nn nnn n n 當我一開始看見這道題時,第一反應時挺簡單的,迴圈就可以完成,但是仔細一想,不僅要完成迴圈n項的遞增,數字也要疊加...

關於volatile的乙個有趣demo

這是乙個測試volatile的例子。首先我們td不新增volatile,以下的邏輯,建立乙個執行緒讓它去修改該flag,但不是讓它立刻去修改,而是先讓子執行緒休息一段時間,好讓主線程進入狂讀flag的狀態,這樣做是為了防止低執行強度下 cpu主動重新整理了快取。之後我們進行修改。public cla...