Fantom

 

const final class

sys::Date

sys::Obj
  sys::Date

@Serializable { simple=true collection=false }

Date represents a day in time independent of a timezone.

Slots

compareSource

override Int compare(Obj obj)

Overrides sys::Obj.compare

Compare based on year, month, and day.

daySource

Int day()

Get the day of the month as a number between 1 and 31.

dayOfYearSource

Int dayOfYear()

Return the day of the year as a number between 1 and 365 (or 1 to 366 if a leap year).

defValSource

const static Date defVal

Default value is "2000-01-01".

equalsSource

override Bool equals(Obj? that)

Overrides sys::Obj.equals

Two dates are equal if have the same year, month, and day.

firstOfMonthSource

Date firstOfMonth()

Get the first day of this Date's current month.

Example:

Date("2009-10-28").firstOfMonth  =>  2009-10-01
fromIsoSource

static Date? fromIso(Str s, Bool checked := true)

Parse an ISO 8601 date. If invalid format and checked is false return null, otherwise throw ParseErr. The following format is supported:

YYYY-MM-DD

Also see toIso and fromStr.

fromLocaleSource

static Date? fromLocale(Str str, Str pattern, Bool checked := true)

Parse a string into a Date using the given pattern. If string is not a valid format then return null or raise ParseErr based on checked flag. See toLocale for pattern syntax.

fromStrSource

static Date? fromStr(Str s, Bool checked := true)

Parse the string into a Date from the programmatic encoding defined by toStr. If the string cannot be parsed into a valid Date and checked is false then return null, otherwise throw ParseErr.

hashSource

override Int hash()

Overrides sys::Obj.hash

Return hash of year, month, and day.

isTodaySource

Bool isToday()

Return is this date equal to today.

isTomorrowSource

Bool isTomorrow()

Return is this date equal to today + 1day.

isYesterdaySource

Bool isYesterday()

Return is this date equal to today - 1day.

lastOfMonthSource

Date lastOfMonth()

Get the last day of this Date's current month.

Example:

Date("2009-10-28").lastOfMonth  =>  2009-10-31
makeSource

static Date make(Int year, Month month, Int day)

Make for the specified date values:

  • year: no restriction (although only 1901-2099 maps to DateTime)
  • month: Month enumeration
  • day: 1-31

Throw ArgErr is any of the parameters are out of range.

midnightSource

DateTime midnight(TimeZone tz := TimeZone.cur())

Return a DateTime for the beginning of the this day at midnight.

minusSource

Duration minus(Date days)

Return the delta between this and the given date. The result is always an exact multiple of 24 hour days. If you wish to subtract a Duration, use the plus method with a negative duration.

Example:

Date(2009, Month.jan, 5) - Date(2009, Month.jan, 2)  =>  3day
monthSource

Month month()

Get the month of this date.

plusSource

Date plus(Duration days)

Add the specified number of days to this date to get a date in the future. Throw ArgErr if days parameter it not an even number of days.

Example:

Date(2008, Month.feb, 28) + 2day  =>  2008-03-01
toCodeSource

Str toCode()

Get this Date as a Fantom expression suitable for code generation.

toDateTimeSource

DateTime toDateTime(Time t, TimeZone tz := TimeZone.cur())

Combine this Date with the given Time to return a DateTime.

toIsoSource

Str toIso()

Format this instance according to ISO 8601 using the pattern:

YYYY-MM-DD

Also see fromIso and toStr.

toLocaleSource

Str toLocale(Str? pattern := null)

Format this date according to the specified pattern. If pattern is null, then a localized default is used. The pattern format is the same as DateTime.toLocale:

YY     Two digit year             07
YYYY   Four digit year            2007
M      One/two digit month        6, 11
MM     Two digit month            06, 11
MMM    Three letter abbr month    Jun, Nov
MMMM   Full month                 June, November
D      One/two digit day          5, 28
DD     Two digit day              05, 28
DDD    Day with suffix            1st, 2nd, 3rd, 24th
WWW    Three letter abbr weekday  Tue
WWWW   Full weekday               Tuesday
'xyz'  Literal characters
toStrSource

override Str toStr()

Overrides sys::Obj.toStr

Return programmatic ISO 8601 string encoding formatted as follows:

YYYY-MM-DD
2009-01-10

Also fromStr, toIso, and toLocale.

todaySource

static Date today(TimeZone tz := TimeZone.cur())

Get today's Date using specified timezone.

weekdaySource

Weekday weekday()

Get the day of the week for this date.

yearSource

Int year()

Get the year as a number such as 2009.