Month formatting.
This commit is contained in:
parent
a05a7c24d8
commit
9c2bafe279
1 changed files with 20 additions and 8 deletions
|
@ -112,22 +112,34 @@
|
||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
;; Months support
|
;; Months support
|
||||||
|
|
||||||
|
;; Returns true if this is a valid month representation - a list with
|
||||||
|
;; two integer elements within the allowed range.
|
||||||
|
(define (month-valid? m)
|
||||||
|
(and (list? m)
|
||||||
|
(car m)
|
||||||
|
(cdr m)
|
||||||
|
(cadr m)
|
||||||
|
(nil? (cddr m))
|
||||||
|
(integer? (car m))
|
||||||
|
(integer? (cadr m))
|
||||||
|
(>= (car m 1000))
|
||||||
|
(<= (car m 9999))
|
||||||
|
(>= (cadr m 1))
|
||||||
|
(<= (cadr m 12))))
|
||||||
|
|
||||||
(define (string->month s)
|
(define (string->month s)
|
||||||
(list 2023 1))
|
(list 2023 1))
|
||||||
|
|
||||||
;; Formats (valid) month as YYYY-MM string
|
;; Formats (valid) month as YYYY-MM string
|
||||||
(define (month->string M)
|
(define (month->string M)
|
||||||
(let ((y (car s))
|
(if (month-valid? M)
|
||||||
(m (cadr s)))
|
(let ((y (car s))
|
||||||
(if (or (< y 1000)
|
(m (cadr s)))
|
||||||
(> y 9999)
|
|
||||||
(< m 1)
|
|
||||||
(> m 12))
|
|
||||||
(error 'string->month "Invalid month" M)
|
|
||||||
(sprintf "~A-~A~A"
|
(sprintf "~A-~A~A"
|
||||||
y
|
y
|
||||||
(if (< m 10) " " "")
|
(if (< m 10) " " "")
|
||||||
m))))
|
m))
|
||||||
|
(error 'string->month "Invalid month" M)))
|
||||||
|
|
||||||
(define (month=? m n)
|
(define (month=? m n)
|
||||||
#f)
|
#f)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue