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 44 of file dcdatetimegt.f90.

References dc_date_types::cyclic_mdays.

44  !
45  ! 2 つの引数の日時差を比較します.
46  ! 1 つ目の引数に格納される日時差が 2 つ目の引数に格納される日時差
47  ! よりも大きい場合, .true. が返ります.
48  !
49  use dc_date_generic, only: evalsec
50  use dc_date_types, only: cyclic_mdays
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

◆ dcdatetime_gt_fi()

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

Definition at line 86 of file dcdatetimegt.f90.

References dc_date_types::cyclic_mdays.

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
real(dp), parameter, public cyclic_mdays

◆ dcdatetime_gt_if()

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

Definition at line 101 of file dcdatetimegt.f90.

References dc_date_types::cyclic_mdays.

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)
real(dp), parameter, public 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 11 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