VB.NET2003です。
今、ある日付を基準に1ヶ月後を算出する処理として
算出日付 = DateAdd(DateInterval.Month, 1, ediRow.Item(日付))
としているのですが、
たとえば、
基準日付が2006/11/30の場合、
算出日付は2006/12/30となってしまいます。
基準日付が月末の場合は、算出日付も1ヵ月後の月末が良いのです。
上記の仕様に変更したいのですが、
どう書けば一番良いでしょうか。初心者ですみません。教えてください。
うーん。
「対象日の翌日の、1ヶ月後の前日」とか・・・
2006/11/30なら、翌日は2006/12/01、その1ヵ月後は2007/01/01、
その1日前は2006/12/31となるので・・・
通常の日の場合も、
2006/11/15なら、翌日は2006/11/16、その1ヶ月後は2006/12/16、
その1日前は、2006/11/15で問題ないでしょうし・・・
なるほど。使わせていただきます。
ありがとうございます!
> その1日前は、2006/11/15で問題ないでしょうし・・・
「2006/12/15」の間違いです。
で、申し訳ありませんが、間違ってました。
単純に、この方法だと、2006/1/30や、2006/3/30で間違った日付になりますね。
#この処理は、月末のときだけにして、
#通常の場合は、普通に1ヶ月加えるだけにしないと駄目そうです。
すみません。
確かにそうです。
基準日が月末日かどうか判断する関数は、
VBで用意されていませんでしょうか。
> 基準日が月末日かどうか判断する関数
あるかどうかは分かりませんが・・・(パット見、なさそうです)
「+1日して月が変わったかどうか」や「+1日して日が『1日』になった」
等で、一応判断はできると思いますけど・・・
DateTime.DaysInMonth メソッドで任意の月の日数が取得できますが。
ツイート | ![]() |