Algorithm 什么';s语言不可知算法,用于查找;去年的同一天”;

Algorithm 什么';s语言不可知算法,用于查找;去年的同一天”;,algorithm,date,calendar,mumps,Algorithm,Date,Calendar,Mumps,我想找到“去年一周的同一天”。我相信这个问题会有很多我还没有开始思考的微妙之处,但我相信这个问题很可能是一个常见的问题 以下是一些可能需要使用此算法的用例: 例1 我是沃尔玛的经理。我想知道去年同一天我卖了多少只小猫连指手套。我知道小猫手套的购买与一周中的哪一天和哪一周密切相关。因此,我想知道“我需要为明天储备多少只小猫手套”1月的第一个星期二 例2 我是一家医院的护士。我想确定下周每天有多少患者入住,这样我就可以更好地让员工与床位需求保持一致。我知道每周有多少患者入住医院,这是一个强劲的趋势,

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

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

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

例2 我是一家医院的护士。我想确定下周每天有多少患者入住,这样我就可以更好地让员工与床位需求保持一致。我知道每周有多少患者入住医院,这是一个强劲的趋势,我想看看去年“11月的第三个星期五”有多少患者

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


该算法的语言无关(如果你好奇的话,我会在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

最好是GT.M,但两者都可以接受。我建议您将此信息发布在comp.lang.mumps上;如果您使用VistA,请咨询hardhats google group。那里有几个人非常喜欢这些挑战,可能已经解决了。我快速查看了您的个人资料;您使用的是VB6;这对于任何VistA用户来说都不太可能。谢谢SSH!这正是我希望做的。获取我使用的dayOfWeek的函数如下所示:gtDayOfWeek(dte)qDTE+4#7+1