gtool5 Fortran 90/95 Library 1.0.0-rc5
日本語
Loading...
Searching...
No Matches
dcdatetimegt.f90
Go to the documentation of this file.
1! -*- mode: f90; coding: utf-8 -*-
2!-----------------------------------------------------------------------
3! Copyright (c) 2000-2026 Gtool Development Group. All rights reserved.
4!-----------------------------------------------------------------------
23
47logical function dcdatetime_gt_tt(time1, time2) result(result)
48
51 use dc_scaledsec, only: dc_scaled_sec, &
52 & operator(==), operator(<), operator(>), operator(<=), operator(>=), &
53 & operator(+), operator(-), operator(*), operator(/), &
54 & modulo, int, abs, sign
55 implicit none
56 type(dc_datetime), intent(in):: time1, time2
57 type(dc_scaled_sec):: year1, year2, time1_sec, time2_sec
58continue
59 call eval(time1, sclyear=year1)
60 call eval(time2, sclyear=year2)
61 if (year1 > year2) then
62 result = .true.
63 elseif (year1 < year2) then
64 result = .false.
65 else
66 time1_sec = evalsclsec(time1) + evalsclsec(zonetodiff(time1 % zone))
67 time2_sec = evalsclsec(time2) + evalsclsec(zonetodiff(time2 % zone))
68 if (time1_sec > time2_sec) then
69 result = .true.
70 else
71 result = .false.
72 end if
73 end if
74end function dcdatetime_gt_tt
75
99logical function dcdatetime_gt_ff(diff1, diff2) result(result)
100
101 use dc_date_generic, only: evalsec
102 use dc_scaledsec, only: &
103 & operator(<), operator(>), operator(<=), operator(>=), operator(==)
105 implicit none
106 type(dc_difftime), intent(in):: diff1, diff2
107continue
108 if ( diff1 % day_seconds == diff2 % day_seconds ) then
109
110 if ( diff1 % mon > diff2 % mon ) then
111 result = .true. ; return
112 elseif ( diff1 % mon < diff2 % mon ) then
113 result = .false. ; return
114 end if
115 if ( diff1 % day > diff2 % day ) then
116 result = .true. ; return
117 elseif ( diff1 % day < diff2 % day ) then
118 result = .false. ; return
119 end if
120 if ( diff1 % sec > diff2 % sec ) then
121 result = .true. ; return
122 elseif ( diff1 % sec < diff2 % sec ) then
123 result = .false. ; return
124 end if
125 result = .false.
126 else
127
128 if (evalsec(diff1) > evalsec(diff2)) then
129 result = .true.
130 else
131 result = .false.
132 end if
133 end if
134end function dcdatetime_gt_ff
135
159logical function dcdatetime_gt_fi(diff, factor) result(result)
160
161 use dc_date_generic, only: evalsec
162 use dc_date_types, only: dc_difftime
163 implicit none
164 type(dc_difftime), intent(in):: diff
165 integer, intent(in):: factor
166continue
167 result = evalsec(diff) > factor
168end function dcdatetime_gt_fi
169
193logical function dcdatetime_gt_if(factor, diff) result(result)
194
195 use dc_date_generic, only: evalsec
196 use dc_date_types, only: dc_difftime
197 implicit none
198 integer, intent(in):: factor
199 type(dc_difftime), intent(in):: diff
200continue
201 result = factor > evalsec(diff)
202end function dcdatetime_gt_if
logical function dcdatetime_gt_tt(time1, time2)
Functions for user defined operation (>)
logical function dcdatetime_gt_if(factor, diff)
logical function dcdatetime_gt_fi(diff, factor)
logical function dcdatetime_gt_ff(diff1, diff2)
Interface declarations for procedures provided from dc_date.
Derived types and parameters for date and time.
Scaled seconds module for precise time operations.