1
0
mirror of https://github.com/PDP-10/its.git synced 2026-01-19 01:27:05 +00:00
PDP-10.its/src/libdoc/dow.jonl3

34 lines
872 B
Plaintext
Executable File
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

;;; THE FOLLOWING FUNCTION, WHEN GIVEN THE DATE AS THREE NUMBERS,
;;; WILL PRODUCE THE 0-ORIGIN NUMBER OF THE DAY-OF-WEEK FOR THAT DATE.
;;; E.G., (DAY-NAME (DOW 1963. 11. 22.)) ==> FRIDAY, WHICH HAPPENED
;;; TO BE THE DAY PRESIDENT JOHN F. KENNEDY WAS ASSASINATED.
(DEFUN DOW (YEAR MONTH DAY)
(AND (AND (FIXP YEAR) (FIXP MONTH) (FIXP DAY))
((LAMBDA (A)
(DECLARE (FIXNUM A))
(\ (+ (// (1- (* 13. (+ MONTH 10. (* (// (+ MONTH 10.) -13.) 12.))))
5.)
DAY
77.
(// (* 5. (- A (* (// A 100.) 100.))) 4.)
(// A -2000.)
(// A 400.)
(* (// A -100.) 2.))
7.))
(+ YEAR (// (+ MONTH -14.) 12.)))))
(DEFUN DAY-NAME (N)
(DECLARE (FIXNUM N))
(COND ((> N 3)
(COND ((> N 5) 'SATURDAY)
((> N 4) 'FRIDAY)
('THURSDAY)))
((> N 1) (COND ((> N 2) 'WEDNESDAY) ('TUESDAY)))
((ZEROP N) 'SUNDAY)
('MONDAY)))