23 TYPE(datetime) :: dt1, dt2
24 TYPE(timedelta) :: td1
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.