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