2

我想找到“去年一周的同一天”。我敢肯定,这个问题会有很多我还没有开始思考的微妙之处,但我相信这个问题很可能是一个常见的问题。

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

示例 1

我是沃尔玛的经理。我想知道去年同一天我卖出了多少只小猫连指手套。我知道小猫连指手套的购买与一周中的某一天和一年中的一周密切相关。因此,我想知道“我需要为明天“一月的第一个星期二”储备多少只小猫手套。

示例 2

我是医院的护士。我想确定下周每天有多少病人来,这样我就可以更好地使工作人员与床位需求保持一致。我知道每周每天有多少患者到达医院的趋势很明显,我想看看去年“11 月的第三个星期五”有多少患者。

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

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

4

1 回答 1

3

有一个函数可以返回星期几。在 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
于 2016-02-16T02:46:53.480 回答