gtool5 Fortran 90/95 ライブラリ 1.0.0-rc5
English
Loading...
Searching...
No Matches
dcdatetimesub.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
43function dcdatetime_sub_tf(time, diff) result(result)
44
47 use dc_scaledsec, only: dc_scaled_sec, &
48 & operator(<), operator(>), operator(<=), operator(>=), &
49 & operator(+), operator(-), operator(*), operator(/), &
50 & modulo, int, abs, sign
51 implicit none
52 type(dc_datetime):: result
53 type(dc_datetime), intent(in):: time
54 type(dc_difftime), intent(in):: diff
55 type(dc_scaled_sec):: time_year, time_mon, time_day, time_sec
56 integer:: time_caltype
57 character(6):: time_zone
58continue
59 call eval(time, &
60 & sclyear = time_year, sclmon = time_mon, sclday = time_day, &
61 & sclsec = time_sec, caltype = time_caltype, zone = time_zone )
62 call dcdatetimecreate(result, &
63 & sclyear = time_year, &
64 & sclmon = time_mon - diff % mon, &
65 & sclday = time_day - diff % day, &
66 & sclsec = time_sec - diff % sec, &
67 & caltype = time_caltype, zone = time_zone)
68end function dcdatetime_sub_tf
69
89function dcdatetime_sub_tt(time1, time2) result(result)
90
91 use dc_date_generic, only: evalsclsec, zonetodiff, operator(-)
94 use dc_scaledsec, only: dc_scaled_sec, &
95 & operator(<), operator(>), operator(<=), operator(>=), &
96 & operator(+), operator(-), operator(*), operator(/), &
97 & modulo, int, abs, sign
98 implicit none
99 type(dc_difftime):: result
100 type(dc_datetime), intent(in):: time1, time2
101continue
102 result % day = time1 % day - time2 % day
103 result % sec = time1 % sec - time2 % sec &
104 & + evalsclsec(zonetodiff(time1 % zone) - zonetodiff(time2 % zone))
105 result % day_seconds = time1 % day_seconds
106 call dcdate_normalize(result % day, result % sec, result % day_seconds, result % nondim_flag)
107end function dcdatetime_sub_tt
108
128function dcdatetime_sub_ff(diff1, diff2) result(result)
129
132 use dc_scaledsec, only: operator(-)
133 implicit none
134 type(dc_difftime):: result
135 type(dc_difftime), intent(in):: diff1, diff2
136continue
137 result % mon = diff1 % mon - diff2 % mon
138 result % day = diff1 % day - diff2 % day
139 result % sec = diff1 % sec - diff2 % sec
140 result % day_seconds = diff1 % day_seconds
141 call dcdate_nondimcheck('dc_date#operator(-)', diff1, diff2, result)
142 call dcdate_normalize(result % day, result % sec, result % day_seconds, result % nondim_flag)
143end function dcdatetime_sub_ff
144
164function dcdatetime_sub_fd(diff, sec) result(result)
165
168 use dc_scaledsec, only: operator(-)
169 use dc_types, only: dp
170 implicit none
171 type(dc_difftime):: result
172 type(dc_difftime), intent(in):: diff
173 real(dp), intent(in):: sec
174continue
175 result % mon = diff % mon
176 result % day = diff % day
177 result % sec = diff % sec - sec
178 result % day_seconds = diff % day_seconds
179 call dcdate_normalize(result % day, result % sec, result % day_seconds, result % nondim_flag)
180end function dcdatetime_sub_fd
181
201function dcdatetime_sub_fr(diff, sec) result(result)
202
203 use dc_date_generic, only: operator(-)
205 use dc_scaledsec, only: operator(-)
206 use dc_types, only: dp
207 implicit none
208 type(dc_difftime):: result
209 type(dc_difftime), intent(in):: diff
210 real, intent(in):: sec
211continue
212 result = diff - real( sec, dp )
213end function dcdatetime_sub_fr
214
234function dcdatetime_sub_fi(diff, sec) result(result)
235
236 use dc_date_generic, only: operator(-)
238 use dc_scaledsec, only: operator(-)
239 use dc_types, only: dp
240 implicit none
241 type(dc_difftime):: result
242 type(dc_difftime), intent(in):: diff
243 integer, intent(in):: sec
244continue
245 result = diff - real( sec, dp )
246end function dcdatetime_sub_fi
type(dc_difftime) function dcdatetime_sub_fd(diff, sec)
type(dc_datetime) function dcdatetime_sub_tf(time, diff)
利用者定義演算子 (-) のための関数
type(dc_difftime) function dcdatetime_sub_ff(diff1, diff2)
type(dc_difftime) function dcdatetime_sub_fi(diff, sec)
type(dc_difftime) function dcdatetime_sub_fr(diff, sec)
type(dc_difftime) function dcdatetime_sub_tt(time1, time2)
dc_date より提供される手続の引用仕様宣言
dc_date用の内部モジュール
subroutine, public dcdate_normalize(day, sec, day_seconds, nondim_flag)
subroutine, public dcdate_nondimcheck(opr, diff1, diff2, rslt)
日付・時刻に関する構造データ型と定数
integer, save, public caltype
デフォルトの暦タイプ (グレゴリオ暦)
精密な時間演算のための秒スケールモジュール
種別型パラメタを提供します。
Definition dc_types.f90:55
integer, parameter, public dp
倍精度実数型変数
Definition dc_types.f90:92