- - PR -
経過月数を求めるには
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2006-08-15 16:15
Visual Basic2005で開発しております。
日付のチェック方法で悩んでまして投稿させて頂きました。 ある日付とシステム日付を比較して、月数が1ヶ月経過したかしていないかを 判断する処理を行いたいのですが、処理方法に苦戦しております。 Datediff("m",日付1,日付2)で比較した場合 例えば 日付1=2006/08/15 日付2=2006/09/01 となっていた場合に、結果は1が返ってきてしまいます。 Datediffでは日付を無視して月のみで比較しているのでそういう現象 になってしまうのはわかるのですが、日付も考慮した経過月数を求める 関数等はあるのでしょうか? | ||||||||
|
投稿日時: 2006-08-15 16:30
こんにちは。
「経過月数」で検索してみたところ、河端さんのブログでちょうどいいエントリ が見つかりました。 http://blogs.sqlpassj.org/yoshihirokawabata/archive/2005/01/04/7028.aspx SQL Server ですが、移植すれば VB.NET でもいけそうです。 ただ、たぶんお仕事だと思いますので、実際にはもう少し仕様を把握するほ うが先かもしれません。 例えば 2006/01/31〜2006/02/28 は1ヶ月経過しているのか(やっぱ り経過していないとみなす?)などいろいろなパターンも考慮すべきでしょう ね。 _________________ ぽぴ王子@わんくま同盟 ぽぴ王子の人生プログラミング中 / ぽぴンち。 | ||||||||
|
投稿日時: 2006-08-15 16:40
そもそも、
のですよね? 対象となる DateTime のインスタンスに AddMonth メソッドで 1 ヶ月進めて、 それを用いて検証すれば、1 ヶ月経過したかどうかは判断できますよね。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||
|
投稿日時: 2006-08-15 18:13
じゃんぬねっとさん ありがとうございます。 こういうことでしょうか? 日付1=2006/08/15 Datetime(日付1).addmonths(1) ≦ システム日付 といった比較方法でしょうか? | ||||||||
|
投稿日時: 2006-08-15 19:00
ぽぴ王子さん こんばんわ。 ありがとうございます。 まずは、参考にして試してみます。 | ||||||||
|
投稿日時: 2006-08-15 20:18
DateTime は関数ではなく構造体なので書き方に誤りがありますが、イメージとしてはそんな感じですね。 確認するより試した方が早いかと思います。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 |
1