用于查找 "Same day of week last year" 的与语言无关的算法是什么

What's the language-agnostic algorithm for finding the "Same day of week last year"

我想找到 "same day of the week last year"。我敢肯定这个问题会有很多我还没有开始思考的微妙之处,但我相信这个问题很可能是一个常见问题。

以下是一些可能有人想使用此算法的用例:

示例 1

我是沃尔玛的经理。我想知道去年同一天我卖出了多少只小猫连指手套。我知道购买小猫连指手套与星期几和一年中的星期密切相关。因此我想知道 "how many kitten mittens do I need to stock for tomorrow "1 月的第一个星期二"。

示例 2

我是一家医院的护士。我想确定下周每天有多少病人进来,以便我可以更好地使员工与床位需求保持一致。我知道每周有多少患者到达医院有很强的趋势,我想看看我们去年有多少患者 "the third Friday of November"。

我觉得这是人们必须遇到的标准问题。是否有应对这一挑战的最佳方法?我可以想象今年有五个星期五的问题,比如 11 月,而去年只有四个,所以你无法以这种方式报告。

什么是该算法的语言无关(尽管如果您好奇,我会在 M 中实现它)方法?

有一个函数returns星期几。在 Cache 中是 $zd(date,10),在 GT.M 中应该有类似的。您需要做的就是使用此功能更正您的日期:

set currentDate=+$h
set currentWeekDay=$zd(currentDate,10)
set dateAboutYearAgo=currentDate-365
set weekDayAboutYearAgo=$zd(dateAboutYearAgo,10)
set sameWeekDayAboutYearAgo=dateAboutYearAgo-weekDayAboutYearAgo+currentWeekDay