什么是语言无关的算法,用于查找"去年的同一天"

时间:2016-02-15 12:33:43

标签: algorithm date calendar mumps

我想找到"去年的同一天"。我确信这个问题会有一些我尚未开始思考的微妙之处,但我相信这个问题可能是一个常见问题。

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

示例1

我是沃尔玛的经理。我想知道去年同一天卖了多少只小猫连指手套。我知道小猫手套的购买与一周中的一周和一周中的一周密切相关。因此,我想知道"明天需要多少小猫连指手套?#34; 1月的第一个星期二和#34;

示例2

我是医院的护士。我想确定下周每天会有多少病人,所以我可以更好地调整工作人员的床位需求。我知道每周有多少病人到达医院时有很强的趋势,我想看看我们有多少病人" 11月的第三个星期五"去年。

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

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

1 个答案:

答案 0 :(得分: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