racket/date: add correctly spelled scaliger
functions
This commit is contained in:
parent
b1cae06897
commit
f26181dd84
|
@ -226,16 +226,26 @@ local time by default or UTC if @racket[local-time?] is
|
|||
error is signaled, otherwise an integer is returned.}
|
||||
|
||||
|
||||
@defproc[(date->julian/scalinger [date date?]) exact-integer?]{
|
||||
@defproc[(date->julian/scaliger [date date?]) exact-integer?]{
|
||||
|
||||
Converts a date structure (up to 2099 BCE Gregorian) into a Julian
|
||||
date number. The returned value is not a strict Julian number, but
|
||||
rather Scalinger's version, which is off by one for easier
|
||||
rather Scaliger's version, which is off by one for easier
|
||||
calculations.}
|
||||
|
||||
|
||||
@defproc[(julian/scalinger->string [date-number exact-integer?])
|
||||
@defproc[(julian/scaliger->string [date-number exact-integer?])
|
||||
string?]{
|
||||
|
||||
Converts a Julian number (Scalinger's off-by-one version) into a
|
||||
Converts a Julian number (Scaliger's off-by-one version) into a
|
||||
string.}
|
||||
|
||||
|
||||
@deftogether[(
|
||||
@defproc[(date->julian/scalinger [date date?]) exact-integer?]
|
||||
@defproc[(julian/scalinger->string [date-number exact-integer?])
|
||||
string?]
|
||||
)]{
|
||||
|
||||
The same as @racket[date->julian/scaliger] and
|
||||
@racket[julian/scaliger->string], but misspelled.}
|
||||
|
|
|
@ -73,7 +73,9 @@
|
|||
(test-string 'julian #f "JD 2 453 860")
|
||||
(test-string 'julian #t "JD 2 453 860, 03:02:01")
|
||||
|
||||
(test 2453860 date->julian/scaliger d)
|
||||
(test 2453860 date->julian/scalinger d)
|
||||
(test "JD 2 453 860" julian/scaliger->string 2453860)
|
||||
(test "JD 2 453 860" julian/scalinger->string 2453860))
|
||||
|
||||
;; Bad dates
|
||||
|
|
|
@ -17,6 +17,8 @@
|
|||
(any/c)
|
||||
. ->* .
|
||||
exact-integer?)]
|
||||
[date->julian/scaliger (date? . -> . exact-integer?)]
|
||||
[julian/scaliger->string (exact-integer? . -> . string?)]
|
||||
[date->julian/scalinger (date? . -> . exact-integer?)]
|
||||
[julian/scalinger->string (exact-integer? . -> . string?)])
|
||||
|
||||
|
@ -123,8 +125,8 @@
|
|||
(values (list week-day ", " day day-th " " month " " year)
|
||||
(list ", " hour12 ":" minute am-pm))]
|
||||
[(julian)
|
||||
(values (list (julian/scalinger->string
|
||||
(date->julian/scalinger date)))
|
||||
(values (list (julian/scaliger->string
|
||||
(date->julian/scaliger date)))
|
||||
(list ", " hour24 ":" minute ":" second))]
|
||||
[(iso-8601)
|
||||
(values
|
||||
|
@ -308,12 +310,12 @@
|
|||
(date-minute d)
|
||||
(date-second d)))
|
||||
|
||||
;; date->julian/scalinger :
|
||||
;; date->julian/scaliger :
|
||||
;; date -> number [julian-day]
|
||||
|
||||
;; Note: This code is correct until 2099 CE Gregorian
|
||||
|
||||
(define (date->julian/scalinger date)
|
||||
(define (date->julian/scaliger date)
|
||||
(define day (date-day date))
|
||||
(define month (date-month date))
|
||||
(define d-year (date-year date))
|
||||
|
@ -348,10 +350,10 @@
|
|||
gregorian-adjustment))
|
||||
final-date)
|
||||
|
||||
;; julian/scalinger->string :
|
||||
;; julian/scaliger->string :
|
||||
;; number [julian-day] -> string [julian-day-format]
|
||||
|
||||
(define (julian/scalinger->string julian-day)
|
||||
(define (julian/scaliger->string julian-day)
|
||||
(apply string-append
|
||||
(cons "JD "
|
||||
(reverse
|
||||
|
@ -372,3 +374,7 @@
|
|||
(cadr reversed-digits)
|
||||
(car reversed-digits)))
|
||||
(loop (cdr (cdr (cdr reversed-digits))))))))))))
|
||||
|
||||
;; Misspelled names for backward compatibility:
|
||||
(define (date->julian/scalinger d) (date->julian/scaliger d))
|
||||
(define (julian/scalinger->string i) (julian/scaliger->string i))
|
||||
|
|
Loading…
Reference in New Issue
Block a user