58 &
operator(-),
operator(+)
65 character(*),
intent(in):: zone
66 logical,
intent(out),
optional:: err
69 character(STRING) :: zone_in, cause_c
70 character(*),
parameter :: subname =
'DCDateTimeSetZone'
72 call beginsub(subname,
'time=%c, zone=%c', &
73 & c1=trim(
tochar(time)), c2=trim(zone))
80 if (
present(err))
then
82 &
'zone=<%c> is invalid.', &
89 call eval(time, zone = zone_in)
93 time = time + (diff_in - diff)
98 call endsub(subname,
'time=%c', &
130 character(*),
intent(in):: zone
131 integer:: hour,
min, sgn
136 if (zone(1:1) ==
'-')
then
141 hour =
stoi(zone(2:3))
176 character(*),
intent(in):: zone
180 if (len(zone) < 6)
return
181 if (verify(zone(1:1),
'+-') /= 0)
return
182 if (verify(zone(2:3),
'1234567890') /= 0)
return
183 if (verify(zone(5:6),
'1234567890') /= 0)
return
184 if (zone(4:4) /=
':')
return
type(dc_difftime) function dcdatetimezonetodiff(zone)
logical function dcdatetimevalidzone(zone)
subroutine dcdatetimesetzone(time, zone, err)
タイムゾーンに関する手続き
subroutine, public storeerror(number, where, err, cause_c, cause_i)
integer, parameter, public dc_noerr
エラー等を保持
integer, parameter, public dc_ebadtimezone
subroutine, public beginsub(name, fmt, i, r, d, l, n, c1, c2, c3, ca, version)
subroutine, public endsub(name, fmt, i, r, d, l, n, c1, c2, c3, ca)
integer, parameter, public string
文字列を保持する 文字型変数の種別型パラメタ