chronos 1.0.8 → 1.0.9
raw patch · 3 files changed
+60/−26 lines, 3 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
+ Chronos: TimeParts :: !Int -> !Int -> !Int -> !Int -> !Int -> !Int -> !Int -> !Int -> TimeParts
+ Chronos: [timePartsDay] :: TimeParts -> !Int
+ Chronos: [timePartsHour] :: TimeParts -> !Int
+ Chronos: [timePartsMinute] :: TimeParts -> !Int
+ Chronos: [timePartsMonth] :: TimeParts -> !Int
+ Chronos: [timePartsOffset] :: TimeParts -> !Int
+ Chronos: [timePartsSecond] :: TimeParts -> !Int
+ Chronos: [timePartsSubsecond] :: TimeParts -> !Int
+ Chronos: [timePartsYear] :: TimeParts -> !Int
+ Chronos: data TimeParts
+ Chronos: instance GHC.Classes.Eq Chronos.TimeParts
+ Chronos: instance GHC.Read.Read Chronos.TimeParts
+ Chronos: instance GHC.Show.Show Chronos.TimeParts
+ Chronos: timeParts :: Offset -> Time -> TimeParts
+ Chronos.Types: TimeParts :: !Int -> !Int -> !Int -> !Int -> !Int -> !Int -> !Int -> !Int -> TimeParts
+ Chronos.Types: [timePartsDay] :: TimeParts -> !Int
+ Chronos.Types: [timePartsHour] :: TimeParts -> !Int
+ Chronos.Types: [timePartsMinute] :: TimeParts -> !Int
+ Chronos.Types: [timePartsMonth] :: TimeParts -> !Int
+ Chronos.Types: [timePartsOffset] :: TimeParts -> !Int
+ Chronos.Types: [timePartsSecond] :: TimeParts -> !Int
+ Chronos.Types: [timePartsSubsecond] :: TimeParts -> !Int
+ Chronos.Types: [timePartsYear] :: TimeParts -> !Int
+ Chronos.Types: data TimeParts
Files
- chronos.cabal +1/−1
- src/Chronos.hs +58/−25
- src/Chronos/Types.hs +1/−0
chronos.cabal view
@@ -2,7 +2,7 @@ name: chronos version:- 1.0.8+ 1.0.9 synopsis: A performant time library description:
src/Chronos.hs view
@@ -1,16 +1,14 @@ {-# language- BangPatterns- , CPP- , DeriveGeneric- , GeneralizedNewtypeDeriving- , MagicHash- , MultiParamTypeClasses- , OverloadedStrings- , RecordWildCards- , ScopedTypeVariables- , TypeFamilies- , TypeInType- , UnboxedTuples+ BangPatterns+ , CPP+ , DeriveGeneric+ , GeneralizedNewtypeDeriving+ , MultiParamTypeClasses+ , OverloadedStrings+ , ScopedTypeVariables+ , TypeFamilies+ , TypeInType+ , UnboxedTuples #-} {-| Chronos is a performance-oriented time library for Haskell, with a@@ -85,6 +83,7 @@ , slash , hyphen , compact+ , timeParts -- ** Months , january , february@@ -237,26 +236,26 @@ , DatetimeLocale(..) , MeridiemLocale(..) , TimeInterval(..)+ , TimeParts(..) ) where -import Data.Text (Text)-import Data.Vector (Vector)-import Data.Attoparsec.Text (Parser)+import Control.Applicative+import Control.Exception (evaluate) import Control.Monad+import Data.Aeson (FromJSON,ToJSON,FromJSONKey,ToJSONKey)+import Data.Attoparsec.Text (Parser)+import Data.ByteString (ByteString)+import Data.Char (isDigit) import Data.Foldable-import Control.Applicative+import Data.Hashable (Hashable) import Data.Int (Int64)-import Data.Char (isDigit)-import Data.ByteString (ByteString)-import Torsor (add,difference,scale,plus)-import Data.Word (Word64, Word8)-import Torsor-import GHC.Generics (Generic)-import Data.Aeson (FromJSON,ToJSON,FromJSONKey,ToJSONKey) import Data.Primitive+import Data.Text (Text)+import Data.Vector (Vector)+import Data.Word (Word64, Word8) import Foreign.Storable-import Data.Hashable (Hashable)-import Control.Exception (evaluate)+import GHC.Generics (Generic)+import Torsor import qualified Data.Aeson as AE import qualified Data.Aeson.Encoding as AEE import qualified Data.Aeson.Types as AET@@ -2660,3 +2659,37 @@ aesonParserOffset t = case decodeOffset OffsetFormatColonOn t of Nothing -> fail "could not parse Offset" Just x -> pure x++-- | Holds all of the parts encoded by a 'Time'.+-- Can be used for formatting if what is presently in the API+-- does not suffice.+data TimeParts = TimeParts+ { timePartsDay :: !Int -- ^ days 0-31+ , timePartsMonth :: !Int -- ^ months 0-11+ , timePartsYear :: !Int+ , timePartsHour :: !Int -- ^ hours 0-23+ , timePartsMinute :: !Int -- ^ minutes 0-59+ , timePartsSecond :: !Int -- ^ seconds 0-59+ , timePartsSubsecond :: !Int -- ^ fraction of a second with nanosecond resolution+ , timePartsOffset :: !Int+ }+ deriving (Eq, Read, Show)++-- | Deconstruct a 'Time' into its 'TimeParts'.+timeParts :: Offset -> Time -> TimeParts+timeParts o0 t0 =+ let+ OffsetDatetime (Datetime dt t) o = timeToOffsetDatetime o0 t0+ Date y mo d = dt+ TimeOfDay h mi s = t+ (wholeSeconds, subsecond) = divMod s 100000000+ in TimeParts+ { timePartsDay = fromIntegral (getDayOfMonth d)+ , timePartsMonth = fromIntegral (getMonth mo)+ , timePartsYear = fromIntegral (getYear y)+ , timePartsHour = h+ , timePartsMinute = mi+ , timePartsSecond = fromIntegral wholeSeconds+ , timePartsSubsecond = fromIntegral subsecond+ , timePartsOffset = getOffset o+ }
src/Chronos/Types.hs view
@@ -52,6 +52,7 @@ , DatetimeLocale(..) , MeridiemLocale(..) , TimeInterval(..)+ , TimeParts(..) ) where import Chronos