Loading...
Searching...
No Matches
Functions/Subroutines
dcdatetimelt.f90 File Reference

Go to the source code of this file.

Functions/Subroutines

logical function dcdatetime_lt_tt (time1, time2)
 
logical function dcdatetime_lt_ff (diff1, diff2)
 
logical function dcdatetime_lt_fi (diff, factor)
 
logical function dcdatetime_lt_if (factor, diff)
 

Function/Subroutine Documentation

◆ dcdatetime_lt_ff()

logical function dcdatetime_lt_ff ( type(dc_difftime), intent(in)  diff1,
type(dc_difftime), intent(in)  diff2 
)

Definition at line 42 of file dcdatetimelt.f90.

43 !
44 ! 2 つの引数の日時差を比較します.
45 ! 2 つ目の引数に格納される日時差が 1 つ目の引数に格納される日時差
46 ! よりも大きい場合, .true. が返ります.
47 !
48 use dc_date_generic, only: evalsec
50 use dc_scaledsec, only: &
51 & operator(<), operator(>), operator(<=), operator(>=), operator(==)
52 implicit none
53 type(DC_DIFFTIME), intent(in):: diff1, diff2
54 continue
55 if ( diff1 % day_seconds == diff2 % day_seconds ) then
56
57 if ( diff1 % mon < diff2 % mon ) then
58 result = .true. ; return
59 elseif ( diff1 % mon > diff2 % mon ) then
60 result = .false. ; return
61 end if
62 if ( diff1 % day < diff2 % day ) then
63 result = .true. ; return
64 elseif ( diff1 % day > diff2 % day ) then
65 result = .false. ; return
66 end if
67 if ( diff1 % sec < diff2 % sec ) then
68 result = .true. ; return
69 elseif ( diff1 % sec > diff2 % sec ) then
70 result = .false. ; return
71 end if
72 result = .false.
73 else
74
75 if (evalsec(diff1) < evalsec(diff2)) then
76 result = .true.
77 else
78 result = .false.
79 end if
80 end if
81

◆ dcdatetime_lt_fi()

logical function dcdatetime_lt_fi ( type(dc_difftime), intent(in)  diff,
integer, intent(in)  factor 
)

Definition at line 84 of file dcdatetimelt.f90.

85 !
86 ! 2 つの引数の日時差を比較します.
87 ! 2 つ目の引数に格納される日時差が 1 つ目の引数に格納される日時差
88 ! よりも大きい場合, .true. が返ります.
89 !
90 use dc_date_generic, only: evalsec
92 implicit none
93 type(DC_DIFFTIME), intent(in):: diff
94 integer, intent(in):: factor
95 continue
96 result = evalsec(diff) < factor

◆ dcdatetime_lt_if()

logical function dcdatetime_lt_if ( integer, intent(in)  factor,
type(dc_difftime), intent(in)  diff 
)

Definition at line 99 of file dcdatetimelt.f90.

100 !
101 ! 2 つの引数の日時差を比較します.
102 ! 2 つ目の引数に格納される日時差が 1 つ目の引数に格納される日時差
103 ! よりも大きい場合, .true. が返ります.
104 !
105 use dc_date_generic, only: evalsec
107 implicit none
108 integer, intent(in):: factor
109 type(DC_DIFFTIME), intent(in):: diff
110 continue
111 result = factor < evalsec(diff)

◆ dcdatetime_lt_tt()

logical function dcdatetime_lt_tt ( type(dc_datetime), intent(in)  time1,
type(dc_datetime), intent(in)  time2 
)

Definition at line 10 of file dcdatetimelt.f90.

11 !
12 ! 2 つの引数の日時を比較します.
13 ! 2 つ目の引数に格納される日時が 1 つ目の引数に格納される日時
14 ! よりも進んでいる場合, .true. が返ります.
15 !
18 use dc_scaledsec, only: dc_scaled_sec, &
19 & operator(==), operator(<), operator(>), operator(<=), operator(>=), &
20 & operator(+)
21 implicit none
22 type(DC_DATETIME), intent(in):: time1, time2
23 type(DC_SCALED_SEC):: year1, year2, time1_sec, time2_sec
24 continue
25 call eval(time1, sclyear=year1)
26 call eval(time2, sclyear=year2)
27 if (year1 < year2) then
28 result = .true.
29 elseif (year1 > year2) then
30 result = .false.
31 else
32 time1_sec = evalsclsec(time1) + evalsclsec(zonetodiff(time1 % zone))
33 time2_sec = evalsclsec(time2) + evalsclsec(zonetodiff(time2 % zone))
34 if (time1_sec < time2_sec) then
35 result = .true.
36 else
37 result = .false.
38 end if
39 end if