我想找到“去年一周的同一天”我相信这个问题会有很多我还没有开始思考的微妙之处,但我相信这个问题很可能是一个普通的问题。
以下是一些可能有人希望使用此算法的用例:
例1
我是沃尔玛的经理。我想知道去年同一天我卖了多少只小猫手套。我知道小猫手套的购买与一周中的一天和一年中的一周密切相关。因此,我想知道“我需要为明天的1月的第一个星期二储备多少只小猫手套”。
例2
我是一家医院的护士我想确定下个星期每天有多少病人来,这样我就可以更好地使工作人员与床位需求保持一致我知道,每周有多少病人到医院就诊有很强的趋势,我想看看去年“11月第三个星期五”有多少病人。
我觉得这是人们必须遇到的一个标准问题。有没有应对这一挑战的最佳方法我可以想象,今年11月有5个星期五,而去年只有4个星期五,所以你不能这样报告。
对于这个算法,什么是独立于语言的方法(尽管如果你好奇的话,我会用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