こんにちは。
現在、VB6.0で処理文を書いてるのですが、わからない箇所があります。
DTPDateFromオブジェクトを使い、
①現在の月の1日を表示
②現在の月の末日を表示
をさせたいのですが、処理が上手くいきません。
ネットで検索をかけてもなかなか出てこないので、
どうかご教授お願いします
DTPDateFromって、もしかしてDTPickerの「インスタンスの」名前?
月の初日の値をセットするには、例えば今日なら
Format(Date, "yyyy/mm") は "2008/07"
⇒ 2008/07/01 は、CDate(Format(Date, "yyyy/mm") & "/01")
でDate型の値に出来る
値さえ出せれば、後は何とかなるよな?
んで、月末日を出すには、ちょっと発想を換えて
「翌月の1日を算出して、1日引く」のがセオリーかと思う
翌月の ある日付は DateAdd("m", 1, 日付)で出せるから、あとはその1日を
上の方法で出す
更にDateAddを使って1日引けばOK
ちなみにあまり気にしなくてもいいかもしれないが、9999/12の末日を求める
状況だと、翌月算出で恐らくエラーになるので注意
さっそくのアドバイスありがとうございますm(_ _)m
大変ありがたいのですが、知識不足のため、まだ処理が
通りません(T_T)
そのまま書いたらよいのでしょうか?
あと、ふと思ったのですが、任意の期間を指定するには
どのようにしたらよいのでしょうか?
よろしくお願いします<(_ _)>
んー… とりあえず頑張ってみたけどダメかぁ…
こういうのは基本的には極力自力で調べたりしないと憶えないんで
直接解答を書くのは避けたかったのだが、仕方ないか
・ある年月日の月初を設定
DTPDateFrom.Value = CDate(Format(ある年月日_Date型, "yyyy/mm") & "/01")
・ある年月日の月末を設定
Dim yokugetu As Date '翌月のある日
yokugetu = DateAdd("m", 1, ある年月日_Date型)
Dim yokugetu01 As Date '翌月1日
yokugetu01 = CDate(Format(yokugetu, "yyyy/mm") & "/01")
DTPDateFrom.Value = DateAdd("d", -1, yokugetu01)
…で いけるはず
(直接書いたのでデバッグ等はしてないが)
ある年月_Date型 は、見ての通りだが、処理対象となる年月日が設定されている
Date型の変数(または、CDate(日付文字列) とか)を書くように
なお、月末を設定する部分は、長くはなるが1行にまとめることも出来る
>任意の期間を指定するには
>どのようにしたらよいのでしょうか?
これは、どういう状況?
よくわからないが、期間を指定するなら基本的には
日付(From)と日付(To)の2つの日付を入力させるしかない
その際、業務アプリとか、キッチリしたエラー回避を
行わなければいけないアプリを作る場合は、
両方の入力が日付として正しい以外に、
日付(From)>日付(To) となるような入力はエラーとすべきかと思う
ツイート | ![]() |