0

我现在正在尝试创建一个球拍程序,将输入的日期(01.01.2000 和 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

Zeller 的同余是您将要查看的算法。将算法从数学转换为球拍代码应该相当简单。

旁注:在询问 StackOverflow 时,询问更具体的问题并将其表述为问题会有所帮助。说明您已经尝试过的内容也可能会有所帮助。

于 2012-11-16T23:31:54.533 回答