0

入力した日付(2000年1月1日から31.12.2100まで)を日として表示するラケットプログラムを作成しようとしています。

よろしくケヤネ

4

2 に答える 2

3

時間に関連するライブラリは、ここで役立つはずです。

#lang racket

(require racket/date)

;; Given a day, month, and year, return the weekday
(define (day-month-year->weekday day month year)
  (define local-secs (find-seconds 0
                                   0
                                   0
                                   day
                                   month
                                   year
                                   #t))
  (define the-date (seconds->date local-secs))
  (vector-ref #("sunday" "monday" "tuesday" "wednesday" "thursday"
                         "friday" "saturday")
              (date-week-day the-date)))

たとえば、私の地域でこれを書いている日付(2012年11月17日)は土曜日であり、day-month-year->weekday関数はこれもサポートしています。

> (day-month-year->weekday 17 11 2012)
"saturday"

1969年7月20日は日曜日である必要があります。

> (day-month-year->weekday 20 7 1969)
"sunday"
于 2012-11-17T17:07:14.493 に答える
1

ツェラーの公式は、あなたが見たいと思うアルゴリズムです。アルゴリズムを数学からラケットコードに変換するのはかなり簡単なはずです。

補足:StackOverflowに質問するときは、より具体的な質問をして、それを質問として表現すると便利です。また、あなたがすでに試したことを述べるのに役立つかもしれません。

于 2012-11-16T23:31:54.533 に答える