[commit: packages/time] master: more time doc (8cea925)
git at git.haskell.org
git at git.haskell.org
Sun Dec 20 07:47:54 UTC 2015
Repository : ssh://git@git.haskell.org/time
On branch : master
Link : http://git.haskell.org/packages/time.git/commitdiff/8cea925e57e0498cab65f7d92e1aef6fc84e1d07
>---------------------------------------------------------------
commit 8cea925e57e0498cab65f7d92e1aef6fc84e1d07
Author: Ashley Yakeley <ashley at semantic.org>
Date: Sat Aug 6 14:03:50 2005 -0700
more time doc
darcs-hash:20050806210350-ac6dd-137bddea624190e5df0f8db7b5eaf47662da1d26
>---------------------------------------------------------------
8cea925e57e0498cab65f7d92e1aef6fc84e1d07
Data/Time/Calendar/ISOWeekDay.hs | 3 ++-
Data/Time/Calendar/TimeOfDay.hs | 6 ++++++
Data/Time/Calendar/Timezone.hs | 8 +++++++-
3 files changed, 15 insertions(+), 2 deletions(-)
diff --git a/Data/Time/Calendar/ISOWeekDay.hs b/Data/Time/Calendar/ISOWeekDay.hs
index 0c23495..ea6522b 100644
--- a/Data/Time/Calendar/ISOWeekDay.hs
+++ b/Data/Time/Calendar/ISOWeekDay.hs
@@ -30,7 +30,8 @@ isoWeekDay date@(ModJulianDay mjd) = (y1,fromInteger (w1 + 1),fromInteger (mod d
else (y0,w0)
else (y0,w0)
--- | convert from ISO 8601 Week format. First argument is year, second week number (1-53), third day of week (1 for Monday to 7 for Sunday).
+-- | convert from ISO 8601 Week format. First argument is year, second week number (1-52 or 53), third day of week (1 for Monday to 7 for Sunday).
+-- Invalid week and day values will be clipped to the correct range.
fromISOWeekDay :: Integer -> Int -> Int -> Date
fromISOWeekDay y w d = ModJulianDay (k - (mod k 7) + (toInteger (((clip 1 (if longYear then 53 else 52) w) * 7) + (clip 1 7 d))) - 10) where
k = getModJulianDay (fromYearAndDay y 6)
diff --git a/Data/Time/Calendar/TimeOfDay.hs b/Data/Time/Calendar/TimeOfDay.hs
index b064048..c8598c2 100644
--- a/Data/Time/Calendar/TimeOfDay.hs
+++ b/Data/Time/Calendar/TimeOfDay.hs
@@ -17,14 +17,20 @@ import Data.Fixed
-- | Time of day as represented in hour, minute and second (with picoseconds), typically used to express local time of day.
data TimeOfDay = TimeOfDay {
+ -- | range 0 - 23
todHour :: Int,
+ -- | range 0 - 59
todMin :: Int,
+ -- | Note that 0 <= todSec < 61, accomodating leap seconds.
+ -- Any local minute may have a leap second, since leap seconds happen in all zones simultaneously
todSec :: Pico
} deriving (Eq,Ord)
+-- | Hour zero
midnight :: TimeOfDay
midnight = TimeOfDay 0 0 0
+-- | Hour twelve
midday :: TimeOfDay
midday = TimeOfDay 12 0 0
diff --git a/Data/Time/Calendar/Timezone.hs b/Data/Time/Calendar/Timezone.hs
index 525b91b..f2b3ea6 100644
--- a/Data/Time/Calendar/Timezone.hs
+++ b/Data/Time/Calendar/Timezone.hs
@@ -18,22 +18,28 @@ import Data.Time.Clock.POSIX
import Foreign
import Foreign.C
--- | count of minutes
+-- | A Timezone is a whole number of minutes offset from UTC, together with a name and a "just for summer" flag.
data Timezone = MkTimezone {
+ -- | The number of minutes offset from UTC. Positive means local time will be later in the day than UTC.
timezoneMinutes :: Int,
+ -- | Is this time zone just persisting for the summer?
timezoneDST :: Bool,
+ -- | The name of the zone, typically a three- or four-letter acronym.
timezoneName :: String
} deriving (Eq,Ord)
+-- | Create a nameless non-summer timezone for this number of minutes
minutesToTimezone :: Int -> Timezone
minutesToTimezone m = MkTimezone m False ""
+-- | Create a nameless non-summer timezone for this number of hours
hoursToTimezone :: Int -> Timezone
hoursToTimezone i = minutesToTimezone (60 * i)
showT :: Int -> String
showT t = (show2 (div t 60)) ++ (show2 (mod t 60))
+-- | Text representing the offset of this timezone, such as \"-0800\" or \"+0400\" (like %z in formatTime)
timezoneOffsetString :: Timezone -> String
timezoneOffsetString (MkTimezone t _ _) | t < 0 = '-':(showT (negate t))
timezoneOffsetString (MkTimezone t _ _) = '+':(showT t)
More information about the ghc-commits
mailing list