{-# LANGUAGE Safe #-}moduleData.Time.LocalTime.Internal.CalendarDiffTime(-- * Calendar DurationmoduleData.Time.LocalTime.Internal.CalendarDiffTime ,)whereimportControl.DeepSeqimportData.DataimportData.FixedimportData.Time.Calendar.CalendarDiffDays importData.Time.Clock.Internal.NominalDiffTime dataCalendarDiffTime =CalendarDiffTime {CalendarDiffTime -> Integer
ctMonths ::Integer,CalendarDiffTime -> NominalDiffTime
ctTime ::NominalDiffTime }deriving(CalendarDiffTime -> CalendarDiffTime -> Bool
(CalendarDiffTime -> CalendarDiffTime -> Bool)
-> (CalendarDiffTime -> CalendarDiffTime -> Bool)
-> Eq CalendarDiffTime
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CalendarDiffTime -> CalendarDiffTime -> Bool
$c/= :: CalendarDiffTime -> CalendarDiffTime -> Bool
== :: CalendarDiffTime -> CalendarDiffTime -> Bool
$c== :: CalendarDiffTime -> CalendarDiffTime -> Bool
Eq,-- | @since 1.9.2Data,-- | @since 1.9.2Typeable)instanceNFDataCalendarDiffTime wherernf :: CalendarDiffTime -> ()
rnf(CalendarDiffTime Integer
m NominalDiffTime
t )=Integer -> ()
forall a. NFData a => a -> ()
rnfInteger
m () -> () -> ()
`seq`NominalDiffTime -> ()
forall a. NFData a => a -> ()
rnfNominalDiffTime
t () -> () -> ()
`seq`()-- | AdditiveinstanceSemigroupCalendarDiffTime whereCalendarDiffTime Integer
m1 NominalDiffTime
d1 <> :: CalendarDiffTime -> CalendarDiffTime -> CalendarDiffTime
<>CalendarDiffTime Integer
m2 NominalDiffTime
d2 =Integer -> NominalDiffTime -> CalendarDiffTime
CalendarDiffTime (Integer
m1 Integer -> Integer -> Integer
forall a. Num a => a -> a -> a
+Integer
m2 )(NominalDiffTime
d1 NominalDiffTime -> NominalDiffTime -> NominalDiffTime
forall a. Num a => a -> a -> a
+NominalDiffTime
d2 )-- | AdditiveinstanceMonoidCalendarDiffTime wheremempty :: CalendarDiffTime
mempty=Integer -> NominalDiffTime -> CalendarDiffTime
CalendarDiffTime Integer
0NominalDiffTime
0mappend :: CalendarDiffTime -> CalendarDiffTime -> CalendarDiffTime
mappend=CalendarDiffTime -> CalendarDiffTime -> CalendarDiffTime
forall a. Semigroup a => a -> a -> a
(<>)instanceShowCalendarDiffTime whereshow :: CalendarDiffTime -> String
show(CalendarDiffTime Integer
m NominalDiffTime
t )=String
"P"String -> ShowS
forall a. [a] -> [a] -> [a]
++Integer -> String
forall a. Show a => a -> String
showInteger
m String -> ShowS
forall a. [a] -> [a] -> [a]
++String
"MT"String -> ShowS
forall a. [a] -> [a] -> [a]
++Bool -> Fixed E12 -> String
forall k (a :: k). HasResolution a => Bool -> Fixed a -> String
showFixedBool
True(NominalDiffTime -> Fixed E12
forall a b. (Real a, Fractional b) => a -> b
realToFracNominalDiffTime
t ::Pico)String -> ShowS
forall a. [a] -> [a] -> [a]
++String
"S"calendarTimeDays ::CalendarDiffDays ->CalendarDiffTime calendarTimeDays :: CalendarDiffDays -> CalendarDiffTime
calendarTimeDays (CalendarDiffDays Integer
m Integer
d )=Integer -> NominalDiffTime -> CalendarDiffTime
CalendarDiffTime Integer
m (NominalDiffTime -> CalendarDiffTime)
-> NominalDiffTime -> CalendarDiffTime
forall a b. (a -> b) -> a -> b
$Integer -> NominalDiffTime
forall a. Num a => Integer -> a
fromIntegerInteger
d NominalDiffTime -> NominalDiffTime -> NominalDiffTime
forall a. Num a => a -> a -> a
*NominalDiffTime
nominalDay calendarTimeTime ::NominalDiffTime ->CalendarDiffTime calendarTimeTime :: NominalDiffTime -> CalendarDiffTime
calendarTimeTime NominalDiffTime
dt =Integer -> NominalDiffTime -> CalendarDiffTime
CalendarDiffTime Integer
0NominalDiffTime
dt -- | Scale by a factor. Note that @scaleCalendarDiffTime (-1)@ will not perfectly invert a duration, due to variable month lengths.scaleCalendarDiffTime ::Integer->CalendarDiffTime ->CalendarDiffTime scaleCalendarDiffTime :: Integer -> CalendarDiffTime -> CalendarDiffTime
scaleCalendarDiffTime Integer
k (CalendarDiffTime Integer
m NominalDiffTime
d )=Integer -> NominalDiffTime -> CalendarDiffTime
CalendarDiffTime (Integer
k Integer -> Integer -> Integer
forall a. Num a => a -> a -> a
*Integer
m )(Integer -> NominalDiffTime
forall a. Num a => Integer -> a
fromIntegerInteger
k NominalDiffTime -> NominalDiffTime -> NominalDiffTime
forall a. Num a => a -> a -> a
*NominalDiffTime
d )

AltStyle によって変換されたページ (->オリジナル) /