Overview
| Comment: | Add ymd->dateformat and add unit tests |
|---|---|
| Timelines: | family | ancestors | descendants | both | trunk |
| Files: | files | file ages | folders |
| SHA3-256: |
28ee8201919be2bfff2db1edc0501bf7 |
| User & Date: | joel on 2018-08-12 16:31:34 |
| Other Links: | manifest | tags |
Context
|
2018-08-22
| ||
| 02:45 | Correct unit test in dates.rkt check-in: 6034c1b0 user: joel tags: trunk | |
|
2018-08-12
| ||
| 16:31 | Add ymd->dateformat and add unit tests check-in: 28ee8201 user: joel tags: trunk | |
|
2018-08-09
| ||
| 22:40 | Add license to CSS check-in: c7616fe6 user: joel tags: trunk | |
Changes
Modified dates.rkt from [9a276406] to [6947cc76].
| ︙ | ︙ | |||
17 18 19 20 21 22 23 | ;; limitations under the License. ;; ;; Author contact information: ;; joel@jdueck.net ;; https://joeldueck.com ;; ------------------------------------------------------------------------- | | | > > > > | > > > > > > > > > > > > > | 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
;; limitations under the License.
;;
;; Author contact information:
;; joel@jdueck.net
;; https://joeldueck.com
;; -------------------------------------------------------------------------
;; Convenience functions for YYYY-MM-DD date strings
(require gregor
racket/string)
(provide (all-defined-out))
;; These functions ignore everything after the first space!
(define (ymd->dateformat ymd-string dateformat)
(~t (iso8601->date (car (string-split ymd-string))) dateformat))
(define (ymd->english ymd-string)
(ymd->dateformat ymd-string "MMMM d, yyyy"))
(module+ test
(require rackunit)
(check-equal? (ymd->english "2018-08-12") "August 12, 2018")
(check-equal? (ymd->dateformat "2018-08-12" "d MMM YYYY") "12 Aug 2018")
;; How we handle weird input
(check-equal? (ymd->english "2018-08-12 everything after 1st space ignored") "August 12, 2018")
(check-equal? (ymd->english "2018-08 omitting the day") "August 1, 2018")
(check-equal? (ymd->english "2018 omitting month and day") "January 1, 2018")
(check-equal? (ymd->dateformat "2018-08-12") "123")
;; Stuff we just don't handle
(check-exn exn:gregor:parse? (lambda () (ymd->english "2018-xyz"))))
|