- PR -

経過月数を求めるには

1
投稿者投稿内容
たか
常連さん
会議室デビュー日: 2006/07/25
投稿数: 24
投稿日時: 2006-08-15 16:15
Visual Basic2005で開発しております。
日付のチェック方法で悩んでまして投稿させて頂きました。

ある日付とシステム日付を比較して、月数が1ヶ月経過したかしていないかを
判断する処理を行いたいのですが、処理方法に苦戦しております。

Datediff("m",日付1,日付2)で比較した場合
例えば
日付1=2006/08/15
日付2=2006/09/01

となっていた場合に、結果は1が返ってきてしまいます。
Datediffでは日付を無視して月のみで比較しているのでそういう現象
になってしまうのはわかるのですが、日付も考慮した経過月数を求める
関数等はあるのでしょうか?

ぽぴ王子
ぬし
会議室デビュー日: 2006/03/24
投稿数: 475
お住まい・勤務地: お住まい:城・勤務地:城
投稿日時: 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ヶ月経過しているのか(やっぱ
り経過していないとみなす?)などいろいろなパターンも考慮すべきでしょう
ね。
_________________
ぽぴ王子@わんくま同盟
ぽぴ王子の人生プログラミング中 / ぽぴンち。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-08-15 16:40
引用:

たかさんの書き込み (2006-08-15 16:15) より:

日付も考慮した経過月数を求める関数等はあるのでしょうか?


そもそも、

引用:

ある日付とシステム日付を比較して、月数が1ヶ月経過したかしていないかを判断する処理を行いたい


のですよね?

対象となる DateTime のインスタンスに AddMonth メソッドで 1 ヶ月進めて、
それを用いて検証すれば、1 ヶ月経過したかどうかは判断できますよね。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
たか
常連さん
会議室デビュー日: 2006/07/25
投稿数: 24
投稿日時: 2006-08-15 18:13
引用:

じゃんぬねっとさんの書き込み (2006-08-15 16:40) より:
対象となる DateTime のインスタンスに AddMonth メソッドで 1 ヶ月進めて、
それを用いて検証すれば、1 ヶ月経過したかどうかは判断できますよね。




じゃんぬねっとさん
ありがとうございます。
こういうことでしょうか?
日付1=2006/08/15

Datetime(日付1).addmonths(1) ≦ システム日付
といった比較方法でしょうか?
たか
常連さん
会議室デビュー日: 2006/07/25
投稿数: 24
投稿日時: 2006-08-15 19:00
引用:

ぽぴ王子さんの書き込み (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ヶ月経過しているのか(やっぱ
り経過していないとみなす?)などいろいろなパターンも考慮すべきでしょう
ね。



ぽぴ王子さん
こんばんわ。
ありがとうございます。
まずは、参考にして試してみます。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-08-15 20:18
引用:

たかさんの書き込み (2006-08-15 18:13) より:

こういうことでしょうか?
日付1=2006/08/15
Datetime(日付1).addmonths(1) ≦ システム日付
といった比較方法でしょうか?


DateTime は関数ではなく構造体なので書き方に誤りがありますが、イメージとしてはそんな感じですね。
確認するより試した方が早いかと思います。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
1

スキルアップ/キャリアアップ(JOB@IT)