Racket(Scheme)程序查找给定日期的星期几

Racket(Scheme)程序查找给定日期的星期几,racket,Racket,我现在正在尝试创建一个racket程序,将输入的日期(2000年1月1日至2100年12月31日)显示为一天 向凯恩致意是您想要了解的算法。将算法从数学转换为Racket代码应该相当简单 旁注:当问StackOverflow时,有助于提出更具体的问题并将其表述为一个问题。它也可能有助于说明您已经尝试了什么。是您将要查看的算法。将算法从数学转换为Racket代码应该相当简单 旁注:当问StackOverflow时,有助于提出更具体的问题并将其表述为一个问题。说明您已经尝试过的内容也可能会有所帮助。

我现在正在尝试创建一个racket程序,将输入的日期(2000年1月1日至2100年12月31日)显示为一天

向凯恩致意

是您想要了解的算法。将算法从数学转换为Racket代码应该相当简单

旁注:当问StackOverflow时,有助于提出更具体的问题并将其表述为一个问题。它也可能有助于说明您已经尝试了什么。

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

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

这些库应该能够在这里提供帮助

#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"
应该是星期天:

> (day-month-year->weekday 20 7 1969)
"sunday"
图书馆应该能在这里提供帮助

#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"
应该是星期天:

> (day-month-year->weekday 20 7 1969)
"sunday"

首先:谢谢你的回答。@dyoo我得到了以下错误“read:#lang not enabled in current context”,然后我刚刚删除了#lang racket,我得到了这个“define:函数体只需要一个表达式,但发现了两个额外部分”上面的代码是用专业级别的racket编写的。它不容易直接从教学语言变体(如初学者语言)中使用,因为它使用了入门级CS讲师不允许的几个高级功能。如果允许您使用专业级别的Racket,请参阅:了解如何将语言级别设置为
#lang Racket
。Thanx,现在可以使用了。但是如何在初学者语言中转换这段代码呢?让我更直接地说:上面的代码在初学者语言中不起作用。也就是说,如果你试图将此作为家庭作业解决方案,它将不起作用。首先:谢谢你的回答。@dyoo我得到了以下错误“read:#lang not enabled in current context”,然后我刚刚删除了#lang racket,我得到了这个“define:函数体只需要一个表达式,但发现了两个额外部分”上面的代码是用专业级别的racket编写的。它不容易直接从教学语言变体(如初学者语言)中使用,因为它使用了入门级CS讲师不允许的几个高级功能。如果允许您使用专业级别的Racket,请参阅:了解如何将语言级别设置为
#lang Racket
。Thanx,现在可以使用了。但是如何在初学者语言中转换这段代码呢?让我更直接地说:上面的代码在初学者语言中不起作用。也就是说,如果您试图将其用作家庭作业解决方案,它将不起作用。您好,输入的形式应为:日-月-年,作为输出,我希望该日期为工作日,例如(选中expect(date->day 1 1 2000)周六),为什么我要相信您的
(date->day 1 1 2000)
周六
?更准确地说,如果手头没有电脑,你会怎么做呢?嗨,输入的形式应该是:天-月-年,作为输出,我希望是该日期所在的工作日,例如(勾选expect(date->day 1 1 2000)周六)为什么我要相信你
(date->day 1 1 2000)
周六
?更准确地说,如果手头没有电脑,你会怎么做?