我想找到"去年一周的同一天"。我敢肯定,这个问题会有一连串的微妙之处,我还没有开始思考,但我相信这个问题可能是一个常见的问题。
以下是有人可能想要使用此算法的一些用例:
例 1
我是沃尔玛的经理。我想知道去年同一天我卖了多少只小猫手套。我知道购买小猫手套与星期几和一年中的星期密切相关。因此,我想知道"我需要为明天"一月的第一个星期二"储备多少只小猫手套。
例 2
我是一家医院的护士。我想确定下周每天有多少病人来,这样我就可以更好地使员工与床位需求保持一致。我知道每周有多少病人到达医院有很强的趋势,我想看看去年"十一月的第三个星期五"有多少病人。
我觉得这是人们必须遇到的标准问题。有没有应对这一挑战的最佳方法?我可以想象今年有五个星期五的问题,比如说十一月有五个星期五,而去年只有四个星期五,所以你不能以这种方式报告。
什么是与语言无关(尽管如果您好奇,我会在 M 中实现这一点(方法来处理此算法?
有一个返回星期数字的函数。在缓存中,它是 $zd(日期,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