2019-04-04 bouzuya/purescript-bouzuya-datetime 0.4.0 / bouzuya/purescript-bouzuya-datetime-formatter 0.1.0
bouzuya/purescript-bouzuya-datetime 0.4.0 をつくった。
purescript-bouzuya-datetime は PureScript の Bouzuya.DateTime モジュールを提供するパッケージ。
0.4.0 では OffsetDateTime を追加した。これはタイムゾーン付きの日時型だ。 JSDate に近い。 2019-02-19 や 2019-02-21 で触れていたもの。
経緯としては purescript/purescript-datetime が提供する DateTime はタイムゾーンが付いていない (……というか過去にはあったのだけど削除されたようだ) 。 Duration を adjust で適用すればいいだけではある。実際にはかなり混乱するのできちんと型を用意することにした。
inOffset や inUTC で TimeZoneOffset を変更してその時間の DateTime を得られる。ちなみに TimeZoneOffset も Bouzuya.DateTime.TimeZoneOffset として提供しているものだ (datetime にはない) 。
bouzuya/purescript-bouzuya-datetime-formatter 0.1.0 をつくった。
purescript-bouzuya-datetime-formatter は PureScript の Bouzuya.DateTime.Formatter モジュールを提供するパッケージ。
上記の bouzuya-datetime には formatter / parser がない。せめて fromString :: String -> Maybe OffsetDateTime や toString :: OffsetDateTime -> String くらいは欲しい。それがこのパッケージ。
DateTime についても fromString / toString を提供している。 slamdata/purescript-formatters で決まりきったフォーマッタの作成を繰り返しすぎているのでパッケージに追加しておいた。
形式は ISO 8601 の extended format にしている。 ms を含まない点で Date.prototype.toISOString と互換性がなくて嫌がられそうだ。細かい形式を指定するというより決まった形をお手軽に……という気持ちで居る。
AtCoder は ABC119 C / ABC 118 C / ABC116 A 。 C 問題さえ自力で解けない。ダメだ。
体調が悪い。子どもを病院に連れて行って薬をもらう。むしろぼくがもらいに行きたい。
いつになったら保育所へ行けるのだろう。