23 TYPE(datetime
) :: dt1, dt2
26 CHARACTER(len=24) :: dtlong
28 print*,
'=== Testing datetime_class module ==='
30 print*,
'Testing datetime_init and datetime_getval with simpledate'
31 dt1 = datetime_new(simpledate=
'000412300000')
32 CALL
getval(dt1, simpledate=dtlong)
33 IF (dtlong(1:12) /=
'000412300000') CALL
EXIT(1)
34 dt1 = datetime_new(simpledate=
'000412310000')
35 CALL
getval(dt1, simpledate=dtlong)
36 IF (dtlong(1:12) /=
'000412310000') CALL
EXIT(1)
38 print*,
'Testing datetime_init and datetime_getval with isodate'
39 dt1 = datetime_new(simpledate=
'000412300000')
40 CALL
getval(dt1, isodate=dtlong)
41 IF (dtlong(1:23) /=
'0004-12-30 00:00:00.000') CALL
EXIT(1)
42 dt1 = datetime_new(simpledate=
'000412310000')
43 CALL
getval(dt1, isodate=dtlong)
44 IF (dtlong(1:23) /=
'0004-12-31 00:00:00.000') CALL
EXIT(1)
46 print*,
'Testing leap year, 2000'
47 dt1 = datetime_new(simpledate=
'199912010000')
48 td1 = timedelta_new(minute=60*24)
54 CALL
getval(dt1, simpledate=dtlong)
55 IF (dtlong(1:17) /=
'20001201000000000') CALL
EXIT(1)
57 print*,
'Testing leap year, 1900'
58 dt1 = datetime_new(simpledate=
'189912010000')
59 td1 = timedelta_new(minute=60*24)
63 CALL
getval(dt1, simpledate=dtlong)
64 IF (dtlong(1:17) /=
'19001201000000000') CALL
EXIT(1)
66 print*,
'Testing human timedelta intervals'
67 dt1 = datetime_new(simpledate=
'189912010000')
68 td1 = timedelta_new(month=3)
72 CALL
getval(dt1, simpledate=dtlong)
73 IF (dtlong(1:17) /=
'20001201000000000') CALL
EXIT(1)
76 dt1 = datetime_new_now(datetime_utc)
77 dt2 = datetime_new_now(datetime_local)
78 CALL
getval(dt1, isodate=dtlong)
79 WRITE(*,
'(A,A)')
'UTC time is: ',dtlong
80 CALL
getval(dt2, isodate=dtlong)
81 WRITE(*,
'(A,A)')
'Local time is: ',dtlong
83 END PROGRAM datetime_test
Classi per la gestione delle coordinate temporali.
Restituiscono il valore dell'oggetto nella forma desiderata.
Class for expressing a relative time interval.