thyme-0.4.1: A faster time library
Safe HaskellSafe-Inferred
LanguageHaskell2010

Data.Thyme.Calendar.WeekDate

Description

Various Week Date formats

Synopsis

Documentation

type Year = Int Source #

Calendar year.

type WeekOfYear = Int Source #

Week of the year.

Meaning of values depends on context; see wdWeek, swWeek, mwWeek.

type DayOfWeek = Int Source #

Day of the week.

0
Sunday for SundayWeek
16
MondaySaturday
7
Sunday for WeekDate, MondayWeek, and WeekdayOfMonth

ISO 8601 Week Date

data WeekDate Source #

ISO 8601 Week Date.

Note that week 01 is defined as the week with the first Thursday, thus wdYear may differ from the Gregorian year between December 29th and January 3rd.

Constructors

WeekDate 

Fields

Instances

Instances details
Arbitrary WeekDate Source # 
Instance details

Defined in Data.Thyme.Calendar.WeekDate

CoArbitrary WeekDate Source # 
Instance details

Defined in Data.Thyme.Calendar.WeekDate

Methods

coarbitrary :: WeekDate -> Gen b -> Gen b #

Data WeekDate Source # 
Instance details

Defined in Data.Thyme.Calendar.Internal

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> WeekDate -> c WeekDate #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c WeekDate #

toConstr :: WeekDate -> Constr #

dataTypeOf :: WeekDate -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c WeekDate) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c WeekDate) #

gmapT :: (forall b. Data b => b -> b) -> WeekDate -> WeekDate #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> WeekDate -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> WeekDate -> r #

gmapQ :: (forall d. Data d => d -> u) -> WeekDate -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> WeekDate -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> WeekDate -> m WeekDate #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> WeekDate -> m WeekDate #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> WeekDate -> m WeekDate #

Bounded WeekDate Source # 
Instance details

Defined in Data.Thyme.Calendar.WeekDate

Generic WeekDate Source # 
Instance details

Defined in Data.Thyme.Calendar.Internal

Associated Types

type Rep WeekDate :: Type -> Type #

Methods

from :: WeekDate -> Rep WeekDate x #

to :: Rep WeekDate x -> WeekDate #

Show WeekDate Source # 
Instance details

Defined in Data.Thyme.Calendar.Internal

NFData WeekDate Source # 
Instance details

Defined in Data.Thyme.Calendar.Internal

Methods

rnf :: WeekDate -> () #

Eq WeekDate Source # 
Instance details

Defined in Data.Thyme.Calendar.Internal

Ord WeekDate Source # 
Instance details

Defined in Data.Thyme.Calendar.Internal

Hashable WeekDate Source # 
Instance details

Defined in Data.Thyme.Calendar.Internal

Methods

hashWithSalt :: Int -> WeekDate -> Int #

hash :: WeekDate -> Int #

Random WeekDate Source # 
Instance details

Defined in Data.Thyme.Calendar.WeekDate

Methods

randomR :: RandomGen g => (WeekDate, WeekDate) -> g -> (WeekDate, g) #

random :: RandomGen g => g -> (WeekDate, g) #

randomRs :: RandomGen g => (WeekDate, WeekDate) -> g -> [WeekDate] #

randoms :: RandomGen g => g -> [WeekDate] #

FormatTime WeekDate Source # 
Instance details

Defined in Data.Thyme.Format

Methods

showsTime :: TimeLocale -> WeekDate -> (Char -> ShowS) -> Char -> ShowS Source #

ParseTime WeekDate Source # 
Instance details

Defined in Data.Thyme.Format

Unbox WeekDate Source # 
Instance details

Defined in Data.Thyme.Calendar.Internal

Vector Vector WeekDate Source # 
Instance details

Defined in Data.Thyme.Calendar.Internal

Methods

basicUnsafeFreeze :: Mutable Vector s WeekDate -> ST s (Vector WeekDate)

basicUnsafeThaw :: Vector WeekDate -> ST s (Mutable Vector s WeekDate)

basicLength :: Vector WeekDate -> Int

basicUnsafeSlice :: Int -> Int -> Vector WeekDate -> Vector WeekDate

basicUnsafeIndexM :: Vector WeekDate -> Int -> Box WeekDate

basicUnsafeCopy :: Mutable Vector s WeekDate -> Vector WeekDate -> ST s ()

elemseq :: Vector WeekDate -> WeekDate -> b -> b

MVector MVector WeekDate Source # 
Instance details

Defined in Data.Thyme.Calendar.Internal

Methods

basicLength :: MVector s WeekDate -> Int

basicUnsafeSlice :: Int -> Int -> MVector s WeekDate -> MVector s WeekDate

basicOverlaps :: MVector s WeekDate -> MVector s WeekDate -> Bool

basicUnsafeNew :: Int -> ST s (MVector s WeekDate)

basicInitialize :: MVector s WeekDate -> ST s ()

basicUnsafeReplicate :: Int -> WeekDate -> ST s (MVector s WeekDate)

basicUnsafeRead :: MVector s WeekDate -> Int -> ST s WeekDate

basicUnsafeWrite :: MVector s WeekDate -> Int -> WeekDate -> ST s ()

basicClear :: MVector s WeekDate -> ST s ()

basicSet :: MVector s WeekDate -> WeekDate -> ST s ()

basicUnsafeCopy :: MVector s WeekDate -> MVector s WeekDate -> ST s ()

basicUnsafeMove :: MVector s WeekDate -> MVector s WeekDate -> ST s ()

basicUnsafeGrow :: MVector s WeekDate -> Int -> ST s (MVector s WeekDate)

type Rep WeekDate Source # 
Instance details

Defined in Data.Thyme.Calendar.Internal

type Rep WeekDate = D1 ('MetaData "WeekDate" "Data.Thyme.Calendar.Internal" "thyme-0.4.1-JF452LdbqmqKJs722uy8nN" 'False) (C1 ('MetaCons "WeekDate" 'PrefixI 'True) (S1 ('MetaSel ('Just "wdYear") 'SourceUnpack 'SourceStrict 'DecidedStrict) (Rec0 Year) :*: (S1 ('MetaSel ('Just "wdWeek") 'SourceUnpack 'SourceStrict 'DecidedStrict) (Rec0 WeekOfYear) :*: S1 ('MetaSel ('Just "wdDay") 'SourceUnpack 'SourceStrict 'DecidedStrict) (Rec0 DayOfWeek))))
newtype Vector WeekDate Source # 
Instance details

Defined in Data.Thyme.Calendar.Internal

newtype Vector WeekDate = V_WeekDate (Vector Int)
newtype MVector s WeekDate Source # 
Instance details

Defined in Data.Thyme.Calendar.Internal

newtype MVector s WeekDate = MV_WeekDate (MVector s Int)

weekDate :: Iso' Day WeekDate Source #

Convert between a Day and an ISO 8601 WeekDate.

> YearMonthDay 2016 1 1 ^. from gregorian . weekDate
WeekDate {wdYear = 2015, wdWeek = 53, wdDay = 5}

weekDateValid :: WeekDate -> Maybe Day Source #

Convert a WeekDate to a Day, or Nothing for invalid WeekDate.

showWeekDate :: Day -> String Source #

Shows a Day using the yyyy-Www-d ISO 8601 Week Date format.

> showWeekDate (gregorian # YearMonthDay 2006 11 15)
"2006-W46-3"

Weeks starting Sunday

data SundayWeek Source #

Week-based calendar date with the first Sunday of the year as the first day of week 01. This corresponds to %U and %w of strftime(3).

The final week of a given year and week 00 of the next both refer to the same week.

Constructors

SundayWeek 

Fields

Instances

Instances details
Arbitrary SundayWeek Source # 
Instance details

Defined in Data.Thyme.Calendar.WeekDate

CoArbitrary SundayWeek Source # 
Instance details

Defined in Data.Thyme.Calendar.WeekDate

Methods

coarbitrary :: SundayWeek -> Gen b -> Gen b #

Data SundayWeek Source # 
Instance details

Defined in Data.Thyme.Calendar.Internal

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> SundayWeek -> c SundayWeek #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c SundayWeek #

toConstr :: SundayWeek -> Constr #

dataTypeOf :: SundayWeek -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c SundayWeek) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c SundayWeek) #

gmapT :: (forall b. Data b => b -> b) -> SundayWeek -> SundayWeek #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> SundayWeek -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> SundayWeek -> r #

gmapQ :: (forall d. Data d => d -> u) -> SundayWeek -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> SundayWeek -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> SundayWeek -> m SundayWeek #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> SundayWeek -> m SundayWeek #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> SundayWeek -> m SundayWeek #

Bounded SundayWeek Source # 
Instance details

Defined in Data.Thyme.Calendar.WeekDate

Generic SundayWeek Source # 
Instance details

Defined in Data.Thyme.Calendar.Internal

Associated Types

type Rep SundayWeek :: Type -> Type #

Show SundayWeek Source # 
Instance details

Defined in Data.Thyme.Calendar.Internal

NFData SundayWeek Source # 
Instance details

Defined in Data.Thyme.Calendar.Internal

Methods

rnf :: SundayWeek -> () #

Eq SundayWeek Source # 
Instance details

Defined in Data.Thyme.Calendar.Internal

Ord SundayWeek Source # 
Instance details

Defined in Data.Thyme.Calendar.Internal

Hashable SundayWeek Source # 
Instance details

Defined in Data.Thyme.Calendar.Internal

Random SundayWeek Source # 
Instance details

Defined in Data.Thyme.Calendar.WeekDate

Methods

randomR :: RandomGen g => (SundayWeek, SundayWeek) -> g -> (SundayWeek, g) #

random :: RandomGen g => g -> (SundayWeek, g) #

randomRs :: RandomGen g => (SundayWeek, SundayWeek) -> g -> [SundayWeek] #

randoms :: RandomGen g => g -> [SundayWeek] #

FormatTime SundayWeek Source # 
Instance details

Defined in Data.Thyme.Format

ParseTime SundayWeek Source # 
Instance details

Defined in Data.Thyme.Format

Unbox SundayWeek Source # 
Instance details

Defined in Data.Thyme.Calendar.Internal

Vector Vector SundayWeek Source # 
Instance details

Defined in Data.Thyme.Calendar.Internal

Methods

basicUnsafeFreeze :: Mutable Vector s SundayWeek -> ST s (Vector SundayWeek)

basicUnsafeThaw :: Vector SundayWeek -> ST s (Mutable Vector s SundayWeek)

basicLength :: Vector SundayWeek -> Int

basicUnsafeSlice :: Int -> Int -> Vector SundayWeek -> Vector SundayWeek

basicUnsafeIndexM :: Vector SundayWeek -> Int -> Box SundayWeek

basicUnsafeCopy :: Mutable Vector s SundayWeek -> Vector SundayWeek -> ST s ()

elemseq :: Vector SundayWeek -> SundayWeek -> b -> b

MVector MVector SundayWeek Source # 
Instance details

Defined in Data.Thyme.Calendar.Internal

Methods

basicLength :: MVector s SundayWeek -> Int

basicUnsafeSlice :: Int -> Int -> MVector s SundayWeek -> MVector s SundayWeek

basicOverlaps :: MVector s SundayWeek -> MVector s SundayWeek -> Bool

basicUnsafeNew :: Int -> ST s (MVector s SundayWeek)

basicInitialize :: MVector s SundayWeek -> ST s ()

basicUnsafeReplicate :: Int -> SundayWeek -> ST s (MVector s SundayWeek)

basicUnsafeRead :: MVector s SundayWeek -> Int -> ST s SundayWeek

basicUnsafeWrite :: MVector s SundayWeek -> Int -> SundayWeek -> ST s ()

basicClear :: MVector s SundayWeek -> ST s ()

basicSet :: MVector s SundayWeek -> SundayWeek -> ST s ()

basicUnsafeCopy :: MVector s SundayWeek -> MVector s SundayWeek -> ST s ()

basicUnsafeMove :: MVector s SundayWeek -> MVector s SundayWeek -> ST s ()

basicUnsafeGrow :: MVector s SundayWeek -> Int -> ST s (MVector s SundayWeek)

type Rep SundayWeek Source # 
Instance details

Defined in Data.Thyme.Calendar.Internal

type Rep SundayWeek = D1 ('MetaData "SundayWeek" "Data.Thyme.Calendar.Internal" "thyme-0.4.1-JF452LdbqmqKJs722uy8nN" 'False) (C1 ('MetaCons "SundayWeek" 'PrefixI 'True) (S1 ('MetaSel ('Just "swYear") 'SourceUnpack 'SourceStrict 'DecidedStrict) (Rec0 Year) :*: (S1 ('MetaSel ('Just "swWeek") 'SourceUnpack 'SourceStrict 'DecidedStrict) (Rec0 WeekOfYear) :*: S1 ('MetaSel ('Just "swDay") 'SourceUnpack 'SourceStrict 'DecidedStrict) (Rec0 DayOfWeek))))
newtype Vector SundayWeek Source # 
Instance details

Defined in Data.Thyme.Calendar.Internal

newtype Vector SundayWeek = V_SundayWeek (Vector Int)
newtype MVector s SundayWeek Source # 
Instance details

Defined in Data.Thyme.Calendar.Internal

newtype MVector s SundayWeek = MV_SundayWeek (MVector s Int)

sundayWeek :: Iso' Day SundayWeek Source #

Conversion between Day and SundayWeek.

> YearMonthDay 2016 1 3 ^. from gregorian . sundayWeek
SundayWeek {swYear = 2016, swWeek = 1, swDay = 0}

Weeks starting Monday

data MondayWeek Source #

Week-based calendar date with the first Monday of the year as the first day of week 01. This corresponds to %W and %u of strftime(3).

The final week of a given year and week 00 of the next both refer to the same week.

Constructors

MondayWeek 

Fields

Instances

Instances details
Arbitrary MondayWeek Source # 
Instance details

Defined in Data.Thyme.Calendar.WeekDate

CoArbitrary MondayWeek Source # 
Instance details

Defined in Data.Thyme.Calendar.WeekDate

Methods

coarbitrary :: MondayWeek -> Gen b -> Gen b #

Data MondayWeek Source # 
Instance details

Defined in Data.Thyme.Calendar.Internal

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> MondayWeek -> c MondayWeek #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c MondayWeek #

toConstr :: MondayWeek -> Constr #

dataTypeOf :: MondayWeek -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c MondayWeek) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c MondayWeek) #

gmapT :: (forall b. Data b => b -> b) -> MondayWeek -> MondayWeek #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> MondayWeek -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> MondayWeek -> r #

gmapQ :: (forall d. Data d => d -> u) -> MondayWeek -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> MondayWeek -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> MondayWeek -> m MondayWeek #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> MondayWeek -> m MondayWeek #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> MondayWeek -> m MondayWeek #

Bounded MondayWeek Source # 
Instance details

Defined in Data.Thyme.Calendar.WeekDate

Generic MondayWeek Source # 
Instance details

Defined in Data.Thyme.Calendar.Internal

Associated Types

type Rep MondayWeek :: Type -> Type #

Show MondayWeek Source # 
Instance details

Defined in Data.Thyme.Calendar.Internal

NFData MondayWeek Source # 
Instance details

Defined in Data.Thyme.Calendar.Internal

Methods

rnf :: MondayWeek -> () #

Eq MondayWeek Source # 
Instance details

Defined in Data.Thyme.Calendar.Internal

Ord MondayWeek Source # 
Instance details

Defined in Data.Thyme.Calendar.Internal

Hashable MondayWeek Source # 
Instance details

Defined in Data.Thyme.Calendar.Internal

Random MondayWeek Source # 
Instance details

Defined in Data.Thyme.Calendar.WeekDate

Methods

randomR :: RandomGen g => (MondayWeek, MondayWeek) -> g -> (MondayWeek, g) #

random :: RandomGen g => g -> (MondayWeek, g) #

randomRs :: RandomGen g => (MondayWeek, MondayWeek) -> g -> [MondayWeek] #

randoms :: RandomGen g => g -> [MondayWeek] #

FormatTime MondayWeek Source # 
Instance details

Defined in Data.Thyme.Format

ParseTime MondayWeek Source # 
Instance details

Defined in Data.Thyme.Format

Unbox MondayWeek Source # 
Instance details

Defined in Data.Thyme.Calendar.Internal

Vector Vector MondayWeek Source # 
Instance details

Defined in Data.Thyme.Calendar.Internal

Methods

basicUnsafeFreeze :: Mutable Vector s MondayWeek -> ST s (Vector MondayWeek)

basicUnsafeThaw :: Vector MondayWeek -> ST s (Mutable Vector s MondayWeek)

basicLength :: Vector MondayWeek -> Int

basicUnsafeSlice :: Int -> Int -> Vector MondayWeek -> Vector MondayWeek

basicUnsafeIndexM :: Vector MondayWeek -> Int -> Box MondayWeek

basicUnsafeCopy :: Mutable Vector s MondayWeek -> Vector MondayWeek -> ST s ()

elemseq :: Vector MondayWeek -> MondayWeek -> b -> b

MVector MVector MondayWeek Source # 
Instance details

Defined in Data.Thyme.Calendar.Internal

Methods

basicLength :: MVector s MondayWeek -> Int

basicUnsafeSlice :: Int -> Int -> MVector s MondayWeek -> MVector s MondayWeek

basicOverlaps :: MVector s MondayWeek -> MVector s MondayWeek -> Bool

basicUnsafeNew :: Int -> ST s (MVector s MondayWeek)

basicInitialize :: MVector s MondayWeek -> ST s ()

basicUnsafeReplicate :: Int -> MondayWeek -> ST s (MVector s MondayWeek)

basicUnsafeRead :: MVector s MondayWeek -> Int -> ST s MondayWeek

basicUnsafeWrite :: MVector s MondayWeek -> Int -> MondayWeek -> ST s ()

basicClear :: MVector s MondayWeek -> ST s ()

basicSet :: MVector s MondayWeek -> MondayWeek -> ST s ()

basicUnsafeCopy :: MVector s MondayWeek -> MVector s MondayWeek -> ST s ()

basicUnsafeMove :: MVector s MondayWeek -> MVector s MondayWeek -> ST s ()

basicUnsafeGrow :: MVector s MondayWeek -> Int -> ST s (MVector s MondayWeek)

type Rep MondayWeek Source # 
Instance details

Defined in Data.Thyme.Calendar.Internal

type Rep MondayWeek = D1 ('MetaData "MondayWeek" "Data.Thyme.Calendar.Internal" "thyme-0.4.1-JF452LdbqmqKJs722uy8nN" 'False) (C1 ('MetaCons "MondayWeek" 'PrefixI 'True) (S1 ('MetaSel ('Just "mwYear") 'SourceUnpack 'SourceStrict 'DecidedStrict) (Rec0 Year) :*: (S1 ('MetaSel ('Just "mwWeek") 'SourceUnpack 'SourceStrict 'DecidedStrict) (Rec0 WeekOfYear) :*: S1 ('MetaSel ('Just "mwDay") 'SourceUnpack 'SourceStrict 'DecidedStrict) (Rec0 DayOfWeek))))
newtype Vector MondayWeek Source # 
Instance details

Defined in Data.Thyme.Calendar.Internal

newtype Vector MondayWeek = V_MondayWeek (Vector Int)
newtype MVector s MondayWeek Source # 
Instance details

Defined in Data.Thyme.Calendar.Internal

newtype MVector s MondayWeek = MV_MondayWeek (MVector s Int)

mondayWeek :: Iso' Day MondayWeek Source #

Conversion between Day and MondayWeek.

> YearMonthDay 2016 1 3 ^. from gregorian . mondayWeek
MondayWeek {mwYear = 2016, mwWeek = 0, mwDay = 7}

toWeekDate :: Day -> (Year, WeekOfYear, DayOfWeek) Source #

Converts a Day to an ISO week date.

toWeekDate (view weekDate -> WeekDate y w d) = (y, w, d)

fromWeekDate :: Year -> WeekOfYear -> DayOfWeek -> Day Source #

Converts an ISO week date to a Day. Does not validate the input.

fromWeekDate y w d = weekDate # WeekDate y w d

fromWeekDateValid :: Year -> WeekOfYear -> DayOfWeek -> Maybe Day Source #

Converts an ISO week date to a Day. Returns Nothing for invalid input.

fromWeekDateValid y w d = weekDateValid (WeekDate y w d)

Orphan instances

Arbitrary MondayWeek Source # 
Instance details

Arbitrary SundayWeek Source # 
Instance details

Arbitrary WeekDate Source # 
Instance details

CoArbitrary MondayWeek Source # 
Instance details

Methods

coarbitrary :: MondayWeek -> Gen b -> Gen b #

CoArbitrary SundayWeek Source # 
Instance details

Methods

coarbitrary :: SundayWeek -> Gen b -> Gen b #

CoArbitrary WeekDate Source # 
Instance details

Methods

coarbitrary :: WeekDate -> Gen b -> Gen b #

Bounded MondayWeek Source # 
Instance details

Bounded SundayWeek Source # 
Instance details

Bounded WeekDate Source # 
Instance details

Random MondayWeek Source # 
Instance details

Methods

randomR :: RandomGen g => (MondayWeek, MondayWeek) -> g -> (MondayWeek, g) #

random :: RandomGen g => g -> (MondayWeek, g) #

randomRs :: RandomGen g => (MondayWeek, MondayWeek) -> g -> [MondayWeek] #

randoms :: RandomGen g => g -> [MondayWeek] #

Random SundayWeek Source # 
Instance details

Methods

randomR :: RandomGen g => (SundayWeek, SundayWeek) -> g -> (SundayWeek, g) #

random :: RandomGen g => g -> (SundayWeek, g) #

randomRs :: RandomGen g => (SundayWeek, SundayWeek) -> g -> [SundayWeek] #

randoms :: RandomGen g => g -> [SundayWeek] #

Random WeekDate Source # 
Instance details

Methods

randomR :: RandomGen g => (WeekDate, WeekDate) -> g -> (WeekDate, g) #

random :: RandomGen g => g -> (WeekDate, g) #

randomRs :: RandomGen g => (WeekDate, WeekDate) -> g -> [WeekDate] #

randoms :: RandomGen g => g -> [WeekDate] #