blob: c55d5f551fb78092fe34f879e26e433fdbca8557 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
|
#lang racket
(define bissextile
(lambda (x)
( if (= (modulo x 4) 0)
(if (not (= ( modulo x 100) 0))
#t
(if (= ( modulo x 400) 0)
#t
#f)
)
#f)
)
)
(define nb-annee-bissextile
(lambda (x)
(letrec ( (f
(lambda (x i)
(if (not (= x 1900))
(if (bissextile x)
(f (- x 1) (+ i 1))
(f (- x 1) i)
)
i)
)
))
( f x 0)
)
)
)
(define nb-jours-au-1-jan
(lambda (x)
(letrec ((f
(lambda (x i)
(if (not(= x 1))
(if (or (= 2 x) (= x 4) (= x 6) (= x 9) (= x 11))
(if (= x 2)
(f (- x 1) ( + i 28))
(f (- x 1) (+ i 30))
)
(f (- x 1) (+ i 31))
)
( + i 31)
)
)
))
(if (= 1 x)
0
( f (- x 1) 0)
)
)
)
)
(define nb-jours (lambda (m d y)
(let ((i (if (= y 1900)
0
(+ (* (nb-annee-bissextile y) 1) (* 365 (- y 1900)))
)
))
(let ((i (+ i (nb-jours-au-1-jan m))))
(let ((i (+ i d)))
(- i 1)
)
)
)
)
)
(define jour-semaine (lambda (m d y)
(let ((nbjour (nb-jours m d y)))
(if (= (modulo nbjour 7) 0)
(display "Lundi")
(if (= (modulo nbjour 7) 1)
(display "Mardi")
(if (= (modulo nbjour 7) 2)
(display "Mercredi")
(if (= (modulo nbjour 7) 3)
(display "Jeudi")
(if (= (modulo nbjour 7) 4)
(display "Vendredi")
(if (= (modulo nbjour 7) 5)
(display "Samedi")
(if (= (modulo nbjour 7) 6)
(display "Dimanche")
(display "whut?")
)
)
)
)
)
)
)
)
)
)
|