lens-datetime-0.1.1: lens-datetime.cabal
name: lens-datetime
version: 0.1.1
license: BSD3
license-file: LICENSE
author: Mihaly Barasz <mihaly@barasz.com>
maintainer: Mihaly Barasz <mihaly@barasz.com>
build-type: Simple
cabal-version: >= 1.6
category: Data, Lenses
stability: experimental
homepage: http://github.com/klao/lens-datetime
bug-reports: http://github.com/klao/lens-datetime/issues
synopsis: Lenses for Data.Time.* types
description:
The @lens-datetime@ library provides a unified lens based accessors
to the various types in @Data.Time.Clock@, @Data.Time.Calendar@ and
@Data.Time.LocalTime@.
.
Demonstration of basic uses.
.
>import Control.Lens
>import Data.Time
>import Data.Time.Lens
>
>aDay :: Day
>aDay = fromGregorian 2013 08 22
>
>aLocal :: LocalTime
>aLocal = LocalTime aDay (TimeOfDay 13 45 28)
>
>aUTC :: UTCTime
>aUTC = UTCTime aDay 7458.9
.
You can then do the following:
.
>> aLocal ^. year
>2013
>> aUTC ^. month
>8
>> aLocal & time .~ midnight
>2013-08-22 00:00:00
>> aUTC & day .~ 1 & month .~ 1
>2013-01-01 02:04:18.9 UTC
.
You can manipulate the date-time values with proper roll-over
behavior via the @FlexibleDateTime@ mechanism:
.
>> aLocal & flexDT.month +~ 12
>2014-08-22 13:45:28
>> aUTC & flexDT.day +~ 100
>2013-11-30 02:04:18.9 UTC
>> aLocal & flexDT.minute +~ 120
>2013-08-22 15:45:28
>> aLocal & flexDT %~ ((day +~ 7) . (hour +~ 2))
>2013-08-22 13:45:28
extra-source-files:
README.md
.gitignore
source-repository head
type: git
location: https://github.com/klao/lens-datetime.git
library
ghc-options: -Wall
build-depends:
base >= 4.6 && < 5
, time == 1.*
, lens == 3.*
exposed-modules:
Data.Time.Lens