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  함