2

「去年の同じ曜日」を探したい。その質問には、私がまだ考え始めていない微妙な点がたくさんあると確信していますが、この質問はおそらく一般的なものだと思います.

誰かがこのアルゴリズムを使用したいかもしれないいくつかのユースケースを次に示します:

例 1

私はウォルマートのマネージャーです。去年の同じ日に何匹子猫のミトンを売ったか知りたい. 子猫のミトンの購入は、曜日と週に密接に関係していることを知っています。したがって、「明日の「1 月の第 1 火曜日」に備えて、何匹の子猫のミトンを用意する必要があるか」を知りたいのです。

例 2

私は病院で看護師をしています。来週、毎日何人の患者が来るかを調べて、ベッドの需要にスタッフをより適切に配置できるようにしたいと考えています。曜日ごとに病院に到着する患者数には強い傾向があることを知っており、昨年の「11 月の第 3 金曜日」に入院した患者数を確認したいと考えています。

これは、人々が遭遇しなければならない標準的な問題だと思います。この課題に対する最善のアプローチはありますか? 今年はたとえば 11 月に 5 つの金曜日があり、昨年は 4 つしかないという問題が想像できるので、そのように報告することはできません。

このアルゴリズムに対する言語に依存しない (興味がある場合は、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 に答える