電子書籍の厳選無料作品が豊富!

こんにちはtmgmです。

VBの時間計算プログラム作成で困っています。

コンボボックスから年月日と時間と分を別々に計5つ指定して、現在時刻との差を出すとというプログラムです。

具体的にはこういうことです。
1.年(cboYear)、月(cboMonth)、日(cboDay)、時(cboHour)、分(cboMinute)をそれぞれリストから指定します。

2.現在の時刻との差をRestTimeに格納し、lblResult.Captionに代入します。(日付や年度をまたぐ場合の時間差も考慮します。)

困っていることというのは、最後のRestTimeがどうしても数値になってしまうということです。時間などは1899年12月30日を0としてそれぞれの日付が値を持っているというのは本に書いてありましたが、それをどうプログラムに反映していいものか、わかりません。
上記のようなプログラム、どなたかお分かりの方いらっしゃいますでしょうか?

ご返答よろしくお願いします。

A 回答 (2件)

時間間隔を計算する場合、


#1さんの言われるようにDateDiff関数を使うと良いと思います。

使い方としましては、分単位の間隔の場合
以下のように一番目の引数が「n」になります。

DateDiff("n", "2003/10/11 09:30", "2003/10/11 10:30")

上のような場合は「60」ですね。
また、○時間○分のように分けたい場合は、

DateDiff("h", "2003/10/11 09:00", "2003/10/11 10:59")

のように1番目の引数を「h」にすることで、
時間間隔を別途取ったりして計算する必要があるかもしれません。
上記の例でいくと1時間59分の時間差なのですが、
試しに動かしてみると「1」が返ってきました。
このようにDateDiff関数は切捨てで値が返ってきてると思われます。(確実ではありません。ごめんなさい。)

以上のように何回かの処理に分けることで、
何日何時間何分のような表示も可能になります。

ただ、もっとスマートなやり方もあるかもしれませんので、
参考までにお願いします。

関数に関しましてはMSDNのオンラインヘルプを参照ください。

参考URL:http://www.microsoft.com/japan/msdn/library/defa …
    • good
    • 0

DateDiff関数ではだめでしょうか?


参考URLを参照してみてください。

参考URL:http://homepage2.nifty.com/sak/w_sak3/doc/sysbrd …
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!