-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | A faster time library -- -- A faster time library @package thyme @version 0.1.2.0 -- | Julian or Gregorian. module Data.Thyme.Calendar.MonthDay type Month = Int type DayOfMonth = Int data MonthDay MonthDay :: {-# UNPACK #-} !Month -> {-# UNPACK #-} !DayOfMonth -> MonthDay mdMonth :: MonthDay -> {-# UNPACK #-} !Month mdDay :: MonthDay -> {-# UNPACK #-} !DayOfMonth -- | Convert between day of year in the Gregorian or Julian calendars, and -- month and day of month. First arg is leap year flag. monthDay :: Bool -> Simple Iso DayOfYear MonthDay monthDayToDayOfYearValid :: Bool -> MonthDay -> Maybe DayOfYear monthLength :: Bool -> Month -> Int _mdMonth :: Lens' MonthDay Month _mdDay :: Lens' MonthDay DayOfMonth instance Typeable MonthDay instance Eq MonthDay instance Ord MonthDay instance Data MonthDay instance Show MonthDay instance NFData MonthDay -- | ISO 8601 Ordinal Date format module Data.Thyme.Calendar.OrdinalDate type Year = Int -- | Gregorian leap year? isLeapYear :: Year -> Bool type DayOfYear = Int data OrdinalDate OrdinalDate :: {-# UNPACK #-} !Year -> {-# UNPACK #-} !DayOfYear -> OrdinalDate odYear :: OrdinalDate -> {-# UNPACK #-} !Year odDay :: OrdinalDate -> {-# UNPACK #-} !DayOfYear ordinalDate :: Simple Iso Day OrdinalDate fromOrdinalDateValid :: OrdinalDate -> Maybe Day -- | Use review weekDate to convert back to -- Day. sundayStartWeek :: Day -> WeekDate -- | Accepts 0−6 for DayOfWeek, and 0-based WeekOfYears. fromSundayStartWeekValid :: WeekDate -> Maybe Day -- | Use review weekDate to convert back to -- Day. mondayStartWeek :: Day -> WeekDate -- | Accepts 1−7 for DayOfWeek, and 0-based WeekOfYears. fromMondayStartWeekValid :: WeekDate -> Maybe Day _odYear :: Lens' OrdinalDate Year _odDay :: Lens' OrdinalDate DayOfYear -- | ISO 8601 Week Date format module Data.Thyme.Calendar.WeekDate type Year = Int type WeekOfYear = Int type DayOfWeek = Int data WeekDate WeekDate :: {-# UNPACK #-} !Year -> {-# UNPACK #-} !WeekOfYear -> {-# UNPACK #-} !DayOfWeek -> WeekDate wdYear :: WeekDate -> {-# UNPACK #-} !Year wdWeek :: WeekDate -> {-# UNPACK #-} !WeekOfYear wdDay :: WeekDate -> {-# UNPACK #-} !DayOfWeek -- | Accepts 0-based DayOfWeek and WeekOfYear when -- reviewing. weekDate :: Simple Iso Day WeekDate -- | Rejects 0-based DayOfWeek and WeekOfYear. fromWeekDateValid :: WeekDate -> Maybe Day showWeekDate :: Day -> String _wdYear :: Lens' WeekDate Year _wdWeek :: Lens' WeekDate WeekOfYear _wdDay :: Lens' WeekDate DayOfWeek module Data.Thyme.Calendar -- | The Modified Julian Day is a standard count of days, with zero being -- the day 1858-11-17. newtype Day ModifiedJulianDay :: Int64 -> Day toModifiedJulianDay :: Day -> Int64 type Year = Int type Month = Int type DayOfMonth = Int data YearMonthDay YearMonthDay :: {-# UNPACK #-} !Year -> {-# UNPACK #-} !Month -> {-# UNPACK #-} !DayOfMonth -> YearMonthDay ymdYear :: YearMonthDay -> {-# UNPACK #-} !Year ymdMonth :: YearMonthDay -> {-# UNPACK #-} !Month ymdDay :: YearMonthDay -> {-# UNPACK #-} !DayOfMonth -- | Gregorian leap year? isLeapYear :: Year -> Bool yearMonthDay :: Simple Iso OrdinalDate YearMonthDay gregorian :: Simple Iso Day YearMonthDay fromGregorianValid :: YearMonthDay -> Maybe Day showGregorian :: Day -> String gregorianMonthLength :: Year -> Month -> Int _toModifiedJulianDay :: Iso' Day Int64 _ymdYear :: Lens' YearMonthDay Year _ymdMonth :: Lens' YearMonthDay Month _ymdDay :: Lens' YearMonthDay DayOfMonth instance Show Day module Data.Thyme.Clock.POSIX posixDayLength :: NominalDiffTime type POSIXTime = NominalDiffTime posixTime :: Simple Iso UTCTime POSIXTime getPOSIXTime :: IO POSIXTime module Data.Thyme.Clock data DiffTime microsecondsToDiffTime :: Int64 -> DiffTime data UTCTime data UTCView UTCTime :: {-# UNPACK #-} !Day -> {-# UNPACK #-} !DiffTime -> UTCView utctDay :: UTCView -> {-# UNPACK #-} !Day utctDayTime :: UTCView -> {-# UNPACK #-} !DiffTime utcTime :: Simple Iso UTCTime UTCView data NominalDiffTime getCurrentTime :: IO UTCTime _utctDay :: Simple Lens UTCTime Day _utctDayTime :: Simple Lens UTCTime DiffTime instance Show UTCTime module Data.Thyme.LocalTime -- | A TimeZone is a whole number of minutes offset from UTC, together with -- a name and a "just for summer" flag. data TimeZone :: * TimeZone :: Int -> Bool -> String -> TimeZone -- | The number of minutes offset from UTC. Positive means local time will -- be later in the day than UTC. timeZoneMinutes :: TimeZone -> Int -- | Is this time zone just persisting for the summer? timeZoneSummerOnly :: TimeZone -> Bool -- | The name of the zone, typically a three- or four-letter acronym. timeZoneName :: TimeZone -> String -- | Text representing the offset of this timezone, such as "-0800" or -- "+0400" (like %z in formatTime) timeZoneOffsetString :: TimeZone -> String -- | Text representing the offset of this timezone, such as "-0800" or -- "+0400" (like %z in formatTime), with arbitrary padding timeZoneOffsetString' :: NumericPadOption -> TimeZone -> String -- | Create a nameless non-summer timezone for this number of minutes minutesToTimeZone :: Int -> TimeZone -- | Create a nameless non-summer timezone for this number of hours hoursToTimeZone :: Int -> TimeZone -- | The UTC time zone utc :: TimeZone -- | Get the current time-zone getCurrentTimeZone :: IO TimeZone getTimeZone :: UTCTime -> IO TimeZone type Hour = Int type Minute = Int data TimeOfDay TimeOfDay :: {-# UNPACK #-} !Hour -> {-# UNPACK #-} !Minute -> {-# UNPACK #-} !DiffTime -> TimeOfDay todHour :: TimeOfDay -> {-# UNPACK #-} !Hour todMin :: TimeOfDay -> {-# UNPACK #-} !Minute todSec :: TimeOfDay -> {-# UNPACK #-} !DiffTime makeTimeOfDayValid :: Hour -> Minute -> DiffTime -> Maybe TimeOfDay timeOfDay :: Simple Iso DiffTime TimeOfDay type Minutes = Int type Days = Int -- | Add some minutes to a TimeOfDay; result comes with a day -- adjustment. addMinutes :: Minutes -> TimeOfDay -> (Days, TimeOfDay) timeOfDayFraction :: Simple Iso Rational TimeOfDay data LocalTime LocalTime :: {-# UNPACK #-} !Day -> {-# UNPACK #-} !TimeOfDay -> LocalTime localDay :: LocalTime -> {-# UNPACK #-} !Day localTimeOfDay :: LocalTime -> {-# UNPACK #-} !TimeOfDay utcLocalTime :: TimeZone -> Simple Iso UTCTime LocalTime data ZonedTime ZonedTime :: {-# UNPACK #-} !LocalTime -> !TimeZone -> ZonedTime zonedTimeToLocalTime :: ZonedTime -> {-# UNPACK #-} !LocalTime zonedTimeZone :: ZonedTime -> !TimeZone zonedTime :: Simple Iso (TimeZone, UTCTime) ZonedTime getZonedTime :: IO ZonedTime utcToLocalZonedTime :: UTCTime -> IO ZonedTime _timeZoneSummerOnly :: Lens' TimeZone Bool _timeZoneName :: Lens' TimeZone String _timeZoneMinutes :: Lens' TimeZone Int _todSec :: Lens' TimeOfDay DiffTime _todMin :: Lens' TimeOfDay Minute _todHour :: Lens' TimeOfDay Hour _localTimeOfDay :: Lens' LocalTime TimeOfDay _localDay :: Lens' LocalTime Day _zonedTimeZone :: Lens' ZonedTime TimeZone _zonedTimeToLocalTime :: Lens' ZonedTime LocalTime instance Typeable ZonedTime instance Eq ZonedTime instance Ord ZonedTime instance Data ZonedTime instance Show ZonedTime module Data.Thyme.Format class FormatTime t showsTime :: FormatTime t => TimeLocale -> t -> (Char -> ShowS) -> (Char -> ShowS) formatTime :: FormatTime t => TimeLocale -> String -> t -> String class ParseTime t buildTime :: ParseTime t => TimeParse -> t parseTime :: ParseTime t => TimeLocale -> String -> String -> Maybe t instance ParseTime UTCTime instance ParseTime ZonedTime instance ParseTime TimeZone instance ParseTime Day instance ParseTime LocalTime instance ParseTime WeekDate instance ParseTime OrdinalDate instance ParseTime MonthDay instance ParseTime YearMonthDay instance ParseTime TimeOfDay instance Enum TimeFlag instance Show TimeFlag instance Show TimeParse instance FormatTime UTCTime instance FormatTime ZonedTime instance FormatTime TimeZone instance FormatTime Day instance FormatTime LocalTime instance FormatTime WeekDate instance FormatTime OrdinalDate instance FormatTime MonthDay instance FormatTime YearMonthDay instance FormatTime TimeOfDay module Data.Thyme