1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
|
-
|
|
-
|
|
!
-
|
-
|
|
!
|
!
|
#module "stopwatch"
#deffunc m_break int param, var hour, var min, var sec, var milliSec
hour = param / 3600000
min = (param - hour * 3600000) / 60000
sec = (param - hour * 3600000 - min * 60000) / 1000
milliSec = param - hour * 3600000 - min * 60000 - sec * 1000
return
#deffunc m_timScrSt int param dim gtime, 4, 3 repeat 4
gtime(cnt, 0) = gettime(4 + cnt)
loop
if param > 0 {
timer = param
timeUp = 0
} else {
timer = 0
timeUp = 1
}
return
#deffunc m_renew repeat 4
gtime(cnt, 1) = gettime(4 + cnt) - gtime(cnt, 0)
loop
passed = (gtime(0, 1) * 3600000) + (gtime(1, 1) * 60000) + (gtime(2, 1) * 1000) + gtime(3, 1)
if passed < 0 : passed += 24 * 60 * 60 * 1000
m_break passed, gtime(0, 1), gtime(1, 1), gtime(2, 1), gtime(3, 1)
if timer {
rest = timer - passed
if rest <= 0 {
timeUp = 1
rest = 0
}
m_break rest, gtime(0, 2), gtime(1, 2), gtime(2, 2), gtime(3, 2)
}
return
#defcfunc m_strTime return strf("%02d : ", gtime(0, 1)) + strf("%02d : ", gtime(1, 1)) + strf("%02d.", gtime(2, 1)) + strf("%03d", gtime(3, 1))
#defcfunc m_strRest return strf("%02d : ", gtime(0, 2)) + strf("%02d : ", gtime(1, 2)) + strf("%02d.", gtime(2, 2)) + strf("%03d", gtime(3, 2))
#defcfunc m_intTime int param if (param < 0) | (3 < param) : return 0
return gtime(param, 1)
#defcfunc m_intRest int param if (param < 0) | (3 < param) : return 0
return gtime(param, 2)
#defcfunc m_timeUp if timer : return timeUp
return -1
#global
#const timeLimit 5 m_timScrSt timeLimit * 1000
*main
m_renew redraw 0
color 255, 255, 255 : boxf
color : pos 40, 30
mes "アプリ起動から経過した時間"
mes " ……" + m_strTime()
mes " " + m_intTime(0) + "時間 " + m_intTime(1) + "分 " + m_intTime(2) + "." + m_intTime(3) + "秒 経過しました。 " + "\n"
switch m_timeUp()
case 1 mes "カウントダウンが終了しました。"
swbreak
case -1 mes "制限時間が設定されていません。"
swbreak
default mes "アプリ起動" + timeLimit + "秒後までのカウントダウン"
mes " ……" + m_strRest()
mes " " + m_intRest(0) + "時間 " + m_intRest(1) + "分 " + m_intRest(2) + "." + m_intRest(3) + "秒 残っています。 " + "\n"
swbreak
swend
redraw 1
await 16
goto *main
|