[閒聊] 循環判斷時間

看板mud_sanc (Sanctuary - 聖殿)作者 (小太保)時間14年前 (2011/06/25 21:16), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
這個其實方法很多,個人算比較懶的那種,不想用 time()%n 的 方式,我大概會用底下的方法.. int t=time(),n1,n2,n3,n4,n5; string str,s1,s2; str=format_time(t); // 先讀取格式化時間 // Sat Jun 25 21:07:10 2011 // 從上面格式就可以做如下的分解 sscanf(str,"%s %s %d %d:%d:%d %d",s1,s2,n1,n2,n3,n4,n5); 假設我們希望在「每個星期六的晚上九點啟動什麼」,然後在 「每個星期六的晚上十一點時把它關閉掉」,可以這樣寫.. if(start!=1 && s1=="Sat" && n2=="21") { start==1; start_event(); } if(start==1 && s1=="Sat" && n2=="23") { start=0; close_event(); } 然後再把上面的東西套入 weather_d.c 的循環判斷裡即可。 提這個的用意,是有打算釋出 weather_d.c 的循環判斷,來給 各 wiz 依據自己的需要使用,目前 weather_d.c 有兩種周期 時間.. 1. 每 240 秒一次 2. 每 360 秒一次 以上面為例,實際上雖然說九點開,但也可以最晚九點06分開 的意思(不必追求很準確說一定要 21:00)。 不過上面的 sscanf 是屬於較不嚴謹的寫法,實際上有較嚴謹 的寫法在,各位可研究一下,字串拆解的方式很多,依我個人 的經驗,依據不同的情況使用不同的方法是 coding 的常態。 Belldandy. -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 111.253.166.13
文章代碼(AID): #1E1T_9Lo (mud_sanc)
文章代碼(AID): #1E1T_9Lo (mud_sanc)