Loading...
Searching...
No Matches
dcdatetimegt.f90 File Reference

Go to the source code of this file.

Functions/Subroutines

logical function dcdatetime_gt_tt (time1, time2)
logical function dcdatetime_gt_ff (diff1, diff2)
logical function dcdatetime_gt_fi (diff, factor)
logical function dcdatetime_gt_if (factor, diff)

Function/Subroutine Documentation

◆ dcdatetime_gt_ff()

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

Definition at line 43 of file dcdatetimegt.f90.

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

References dc_date_types::cyclic_mdays.

◆ dcdatetime_gt_fi()

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

Definition at line 85 of file dcdatetimegt.f90.

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

References dc_date_types::cyclic_mdays.

◆ dcdatetime_gt_if()

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

Definition at line 100 of file dcdatetimegt.f90.

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

References dc_date_types::cyclic_mdays.

◆ dcdatetime_gt_tt()

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

Definition at line 10 of file dcdatetimegt.f90.

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