• 締切済み

指定日が何月であるかを判断する方法について

例)1月の15日を境目とします。 (境目の日にちは変動します。) 12/16~1/15・・・12月 1/16~2/15・・・1月 2/16~3/15・・・2月 3/16~4/15・・・3月 という風に月を指定したいのですが、 ロジックの組み方がわかりません。 どなたかアドバイスお願いします。

みんなの回答

  • arukamun
  • ベストアンサー率35% (842/2394)
回答No.5

No.1のarukamunです。 どの様な言語でプログラミングするのか解りませんのでロジックだけにします。 境目をM月D日(だたし、Dは1~27までとする) ((M+11)%12+1)月(D+1)日~M月D・・・((M+11)%12+1)月 (M+11)%12は (M+11)を12で割ったときの余りを計算します。 言語によっては、 MOD(M+11,12) のものもありますので、置き換えて下さい。 もし、Dが28以上の場合を考える場合は、どうなることが望ましいかを考えなくてはなりません。 逆に M月D日~m月d日・・・?月 であれば、説明は不用で M月D日~m月d日・・・M月 です。(No.1で書いた内容ですね。)

  • software
  • ベストアンサー率28% (24/84)
回答No.4

#3です。 例題が誤っていました。 Month(DateAdd("d",-[境とする日],[指定日])) 上記の方法で1/15から15日戻ると12/31になり12月が求められます。

  • software
  • ベストアンサー率28% (24/84)
回答No.3

指定日から境目とする日を引いて、結果の月を求めればよいです。 Exp Month(DateAdd("d",[境とする日],[指定日]))

  • MovingWalk
  • ベストアンサー率43% (2233/5098)
回答No.2

月、日を取り出します ・日が指定日(15日)以内なら前月(取出した月-1)  但し、月-1が0なら12月とする ・それ以外なら当月(取出した月) これでいかがですか?

  • arukamun
  • ベストアンサー率35% (842/2394)
回答No.1

>12/16~1/15・・・12月 >1/16~2/15・・・1月 >2/16~3/15・・・2月 >3/16~4/15・・・3月 あまり複雑に考える必要はないですね。 範囲の前の月をそのまま表示するだけで良いと思います。

関連するQ&A