Visual Basic 中学校 掲示板 投稿の管理
タグのない投稿を抽出
統計
RSS
Visual Basic 中学校
投稿一覧
時間帯処理
この投稿へのリンク
https://keijiban.umayadia.com/ThreadDetail.aspx?ThreadId=10610#CommentId22286
この投稿の削除
削除パスワード
削除する
コメント本文
投稿者
魔界の仮面弁士
 (社会人)
投稿日時
2011/12/6 21:44:12
> 下記を参考にしたら、うまく出来ました。
…下記?
> 例えばTextBox1に10:10 TextBox2に15:03 とします
「10:10」ではなく
「10:10」の表記なのですね。
10時よりも前の時刻は、
「9:30」
「09:30」
「 9:30」
のいずれの形式になるのでしょうか?
> 現在の時刻にから次に近い方を知りたいのです。
例題として挙げられたのは、
TextBox1 が "10:10"
TextBox2 が "15:30"
の場合の話ですよね。
確認のため、それぞれのテキストボックスの値を使って、
時刻データに日付も付与した状態で比較させてください。
《現在時刻が [2011/12/06 16:30] だった場合》
(a) 2011/12/06 10:10 … マイナス 6時間と20分
(b) 2011/12/06 15:30 … マイナス 1時間と 0分
(c) 2011/12/07 10:10 … プラス17時間と10分
(d) 2011/12/07 15:30 … プラス23時間と 0分
これを見ると、現在の時刻に一番近いのは b に思えたのですが、
TextBox3 には "15:30" ではなく、"10:10" が入るのですね。
《現在時刻が [2011/12/06 10:30] だった場合》
(a) 2011/12/06 10:10 … マイナス 0時間と20分
(b) 2011/12/06 15:30 … プラス 5時間と 0分
(c) 2011/12/07 10:10 … プラス23時間と40分
(d) 2011/12/07 15:30 … プラス29時間と 0分
これを見ると、現在の時刻に一番近いのは a に思えたのですが、
TextBox3 には "10:10" ではなく、"15:30" が入るのですね。
ということは、「近い方の時刻」とは±の時間差が少ない物を指すのではなく、
次に経過するであろう時刻を選ぼうとしているということですね。
(目覚まし時計のアラーム設定のようなものを連想すれば良いのかな…?)
> よろしくお願いします
いろいろなやり方がありますが、たとえば 10時より前の時刻も2桁表記にするなら
Dim
hm
As
String
=
String
.Format(
"{0:HH}:{0:mm}"
, Now)
を使う手があります。
この場合、変数 hm には、現在の時刻が「16:30」などとして入りますので、
あとは、TextBox1 および 2 の値と、If 文等で大小比較してやれば調べられます。
仮に、TextBox1.Text ≦ TextBox2.Text の関係が成り立つのであれば、
予想される組み合わせとしては、
(1) 現在時刻 ≦ TextBox1 ≦ TextBox2
(2) TextBox1 ≦ 現在時刻 ≦ TextBox2
(3) TextBox1 ≦ TextBox2 ≦ 現在時刻
のいずれかしかありませんよね。
ということは、
(1) の場合は、TextBox3.Text に TextBox1.Text をセットする
(2) の場合は、TextBox3.Text に TextBox2.Text をセットする
(3) の場合も、TextBox3.Text に TextBox1.Text をセットする
とすれば良いことになります。
もしも、TextBox1 > TextBox2 のパターンもありえるのだとしても、
上記の判定パターンが増えるだけなので、考え方は変わらないはずです。