人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

VB6.0での時間範囲取得についての質問です。
「毎週○曜日の×時×分になったらフラグを立てたい(ある処理をさせたい)」と思っています。
DateTime関数やDateDiff関数をいろいろいじってみたのですが、うまい方法を思いつきません。
曜日の取得はわかります。
(思いついたごり押しな方法としては現在日付(文字列)と設定時刻(文字列)をいじって今日の設定時刻(文字列)を作ってDateDiffにかませて比較するなど)

なにか単純明快な実装方法がありましたら教えてください。

●質問者: k1LoW
●カテゴリ:コンピュータ
✍キーワード:vb6 うまい ごり押し フラグ 単純明快
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● きゃづみぃ
●45ポイント ベストアンサー

タイマーイベントで 1秒単位ぐらいで チェックして

その割り込み内で 今日の日付から 曜日を取得し

曜日が違う場合は、そのまま イベントを 抜けます。

そして 時間だけを 取り出して時間が一致するか 判断し

一致したら 分が 一致するか判断します。

それで一致したら フラグをたてればいいでしょう。


http://www.ivystar.jp/archives/category/access/accessoo/

時間を表示します。1桁の時間の場合は1桁で表示。2桁の場合は2桁で表示します。

例) Format(”6時8分15秒”, “h”) → 6

時間を取り出します。

◎質問者からの返答

回答ありがとうございます。

実装したところうまくいきました。

ところで"Timerを1秒ごと"というのはメモリ占有の原因になりそうなのですが、特に問題ないか調べてみようと思います。


2 ● llusall
●45ポイント
Option Explicit

Sub test()

 Dim xDay As Date '設定日時
 Dim genZai As Date '現在日時
 
 '現在日時をセット
 genZai = Now
 '設定日時をセット
 xDay = DateSerial(2007, 4, 12) + TimeSerial(17, 42, 21)
 
 '比較してみる
 If genZai = xDay Then
 MsgBox "まさにぴったり"
 ElseIf genZai < xDay Then
 MsgBox "まだまだ早いよ"
 Else
 MsgBox "過ぎちゃったよ"
 End If

End Sub

日時の比較方法を問われていますか?

◎質問者からの返答

回答ありがとうございます。

自分がしたいことは、日付の指定をせずに

毎週○曜日の何時何分を指定したいということなのです。

○曜日を取得して、そのあと今の時刻と、指定時刻の比較がしたいと思っています。

llusallさんの提示した方法だと、

DateSerialで今日の日付を指定、TimeSerialで指定時刻を指定すれば、今日の指定時刻の指定ができそうです。

しかしやはり1秒ごとのTimerが必要そうですね。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ