日期計算/兩日期間日數/星期天
程式可以計算以下問題:
˙計算一個日期經過一段日數後(或前)的日期。
˙計算一個日期是屬於那個星期天。
˙計算兩日期間的日數(包括最後一日,但不包括第一日)。
程式需要在 BASE 模式下執行,因此在選擇新程式位置後,按 3 選用BASE模式。
程式編寫日期: 2007年9月17日
程式 (233 bytes)
ClrMemory: Dec: ?→X: Lbl 0: ?→Y: ?→M: ?→D:
14 - M: Ans ÷ 12→B: 4800 + Y - B→Y:
365Y + ( 153(12B + M - 3) + 2 ) ÷ 5 + D + Y ÷ 4
- Y ÷ 100 + Y ÷ 400 + 2 - A→A: C => A◢ X=1→C:
Ans => Goto 0: X => A - A÷7×7◢ ?→M: A - 3M+:
146097→D: 4M + 3: Ans ÷ D→Y: DY ÷4 M-: 4M + 3:
Ans ÷ 1461→B: 1461B ÷ 4 M-: 5M + 2: Ans ÷ 153→A:
B + 100Y - 4800 + A ÷ 10◢ 3 + A - A ÷ 10 × 12◢
153A + 2: M + 1 - Ans ÷ 5
例題1: 求2006年7月1日經過300天後的日期。
Prog 1 再按 EXE (不輸入或輸入0代表日期計算)
2006 EXE 7 EXE 1 EXE 300 EXE (顯示2007) EXE (顯示4) EXE (顯示27)
所以日期為2007年4月27日
計算完結後按 MODE 1 返回正常計算模式。
例題2: 求2006年7月1日經過300天前的日期。
Prog 1 再按 EXE (不輸入或輸入0代表日期計算)
2006 EXE 7 EXE 1 EXE - 300 EXE (注意輸入減號代替負號,顯示2005)
EXE (顯示9) EXE (顯示4)
所以日期為2005年9月4日
計算完結後按 MODE 1 返回正常計算模式。
例題3: 計算2003年10月15日至2004年4月1日相差的日數。
按 Prog 1 再按 1 EXE (1代表計算兩日期間日數)
2003 EXE 10 EXE 15 EXE 2004 EXE 4 EXE 1 EXE (顯示相差日數為169)
計算完結後按 AC 終止程式,按MODE 1 返回正常計算模式。
例題4: 計算2004年12月31日是那個星期天。
按 Prog 1 再按 2 EXE (2代表計算星期天)
2004 EXE 12 EXE 31 EXE (顯示數值為5,即星期五)
計算完結後按 AC 終止程式,按MODE 1 返回正常計算模式。
例題5: 計算2005年1月16日是那個星期天。
按 Prog 1 再按 2 EXE (2代表計算星期天)
2005 EXE 1 EXE 16 EXE (顯示數值為0,即星期日)
計算完結後按 AC 終止程式,按MODE 1 返回正常計算模式。