if $ARGS[0] = 'init':
!{-----------------------------static----------------------------}
$times_of_day[1] = '새벽'
$times_of_day[2] = '아침'
$times_of_day[3] = '점심'
$times_of_day[4] = '오후'
$times_of_day[5] = '저녁'
$times_of_day[6] = '밤'
$names_of_day[1] = '월'
$names_of_day[2] = '화'
$names_of_day[3] = '수'
$names_of_day[4] = '목'
$names_of_day[5] = '금'
$names_of_day[6] = '토'
$names_of_day[7] = '일'
days_of_month[1] = 31
days_of_month[2] = 28
days_of_month[3] = 31
days_of_month[4] = 30
days_of_month[5] = 31
days_of_month[6] = 30
days_of_month[7] = 31
days_of_month[8] = 31
days_of_month[9] = 30
days_of_month[10] = 31
days_of_month[11] = 30
days_of_month[12] = 31
year['current'] = 2023
month['current'] = 12
date['current'] = 18
hour['current'] = 13
minute['current'] = 0
gs 'Time', 'update'
end
if $ARGS[0] = 'update':
!{-----------------------------dynamic----------------------------}
gs 'Time', 'calculate_passed_day'
$names_of_day = $names_of_day[((day['passed']-1) mod 7) +1]
days_of_month = days_of_month[((month['current']-1) mod 12) +1]
gs 'Time' ,'minute_passed'
end
if $ARGS[0] = 'check_leap_year':
if val($ARGS[1]) > 0:
if (($ARGS[1] mod 4 = 0) and ($ARGS[1] mod 100 ! 0)) or ($ARGS[1] mod 400 = 0):
days_of_month[2] = 29
else
days_of_month[2] = 28
end
end
end
if $ARGS[0] = 'calculate_passed_day':
year['passed'] = ((year['current']-1)*365) + ((year['current']-1)/4) - ((year['current']-1)/100) + ((year['current']-1)/400)
if month['current'] > 1:
tmp1 = 1
tmp2 = 0
:month_passed
if tmp1 < month['current'] :
tmp2 += days_of_month[((month['current']-1) mod 12) +1]
tmp1 +=1
jump 'month_passed'
end
end
month['passed'] = tmp2
killvar 'tmp1'
killvar 'tmp2'
date['passed'] = date['current']
day['passed'] = year['passed'] + month['passed'] +date['passed']
end
if $ARGS[0] = 'add_minute':
if val($ARGS[1]) >0:
minute['current'] += val($ARGS[1])
else
msg "에러: add_minute"
end
gs 'Time', 'minute_passed'
end
if $ARGS[0] = 'add_hour':
if val($ARGS[1]) >0:
minute['current'] += val($ARGS[1])*60
else
msg "에러: add_minute"
end
gs 'Time', 'minute_passed'
end
if $ARGS[0] = 'minute_passed':
if minute['current'] >= 60: gs 'Time', 'hour_passed'
end
if $ARGS[0] = 'hour_passed':
if minute['current'] >= 60:
hour['current'] += minute['current']/60
minute['current'] = minute['current'] mod 60
end
if hour['current'] >= 24: gs 'Time', 'day_passed'
end
if $ARGS[0] = 'day_passed':
if hour['current'] >= 24:
date['current'] += hour['current']/24
day['passed'] += hour['current']/24
hour['current'] = hour['current'] mod 24
end
$names_of_day = $names_of_day[((day['passed']-1) mod 7) +1]
if date['current'] > days_of_month: gs 'Time', 'month_passed'
end
if $ARGS[0] = 'month_passed':
if date['current'] > days_of_month:
date['current'] -= days_of_month
month['current'] += 1
end
if month['current'] > 12: gs 'Time', 'year_passed'
days_of_month = days_of_month[((month['current']-1) mod 12) +1]
end
if $ARGS[0] = 'year_passed':
if month['current'] > 12:
year['current'] += month['current']/12
month['current'] = ((month['current']-1) mod 12) +1
days_of_month = days_of_month[((month['current']-1) mod 12) +1]
end
gs 'Time', 'check_leap_year', year['current']
end
어레이값이 [0] 되면 반환이 안되서
x-1 mod n +1 함