60 character(STRING):: result
63 integer :: year, mon, day, hour,
min, csec_len
65 character(TOKEN) :: zone
66 character(STRING) :: csec
70 & year=year, mon=mon, day=day, hour=hour,
min=
min, sec=sec, zone=zone)
73 if ( trim(csec) ==
'-0.' ) csec =
'0.'
74 do while ( index(
'123456789.', csec(len_trim(csec):len_trim(csec)) ) == 0 )
75 if ( len_trim(csec) < 2 )
exit
76 csec = csec(1:len_trim(csec)-1)
78 if (int(sec) > -1 .and. int(sec) < 10)
then
79 if (len_trim(csec) >= len(csec))
then
80 csec =
'0' // trim(csec(1:len(csec) - 1))
82 csec =
'0' // trim(csec)
85 csec_len = len(trim(adjustl(csec)))
86 if (csec(csec_len:csec_len) ==
'.') csec = csec(1:csec_len-1)
88 result =
cprintf(
'%04d-%02d-%02dT%02d:%02d:%c%c', &
89 & i=(/year, mon, day, hour,
min/), &
90 & c1=trim(csec), c2=trim(zone))
155 character(STRING):: result
158 integer :: year, mon, day, hour,
min, csec_len
160 character(STRING) :: csec
164 if ( .not. diff % nondim_flag )
then
165 call eval(diff, year=year, mon=mon, day=day, hour=hour,
min=
min, sec=sec)
167 if ( year < 0 .or. mon < 0 .or. day < 0 .or. &
168 & hour < 0 .or.
min < 0 .or. sec < 0 )
then
169 year=
abs(year) ; mon=
abs(mon) ; day=
abs(day)
177 if ( trim(csec) ==
'-0.' ) csec =
'0.'
178 do while ( index(
'123456789.', csec(len_trim(csec):len_trim(csec)) ) == 0 )
179 if ( len_trim(csec) < 2 )
exit
180 csec = csec(1:len_trim(csec)-1)
182 if (
int(sec) > -1 .and.
int(sec) < 10)
then
183 if (len_trim(csec) >= len(csec))
then
184 csec =
'0' // trim(csec(1:len(csec) - 1))
186 csec =
'0' // trim(csec)
189 csec_len = len(trim(adjustl(csec)))
190 if (csec(csec_len:csec_len) ==
'.') csec = csec(1:csec_len-1)
192 result =
cprintf(
'%c%04d-%02d-%02dT%02d:%02d:%c', &
193 & i=(/year, mon, day, hour,
min/), &
194 & c1=pm, c2=trim(csec))
250 character(TOKEN) :: result
252 logical,
intent(in),
optional:: upcase
254 select case( time % caltype )
character(token) function dcdatetimetocharcal(time, upcase)
character(string) function dcdatetimetochar(time)
dc_date_types::DC_DATETIME, dc_date_types::DC_DIFFTIME 型変数の文字変換
character(string) function dcdifftimetochar(diff)
integer, parameter, public cal_noleap
閏年無しの暦 (1年 365 日)
integer, parameter, public cal_cyclic
周期暦 (1ヶ月 30.6 日)
integer, parameter, public cal_gregorian
グレゴリオ暦
integer, parameter, public cal_julian
ユリウス暦
logical function, public present_and_true(arg)
integer, parameter, public token
単語やキーワードを保持する文字型変数の種別型パラメタ
integer, parameter, public dp
倍精度実数型変数
integer, parameter, public string
文字列を保持する 文字型変数の種別型パラメタ