【Class Library】


時刻計算
 時刻計算は、たぶんVisual Basicの既存の関数で可能だと思うんですが、使 いやすい!?ものを作ってみました。時刻計算の理論は簡単で、例えば、 ?時?分?秒から50分20秒後の時間を求めるには、次のような順に計算 するとわかりやすく簡単です。

1.基準の時刻?時?分?秒を午前0時0分0秒からの経過時間(秒)に変換する。
2.50分20秒も3020秒というように、換算する。
3.1と2の秒時間をたして、それを時刻に変換する。

プログラムコードでは、下のように表せます。


★クラス内の処理内容★

SecondTimeプロシージャが、時刻を秒に換算するプロシージャで、 GetTimerプロシージャが、時間差の計算をする(時刻に変換する)プロシージャです。

'============================================================
'SecondTime   0時0分0秒を基準に、それからの経過時間を秒で返す
'------引数--------------------------------------------------
'h,m,s   それぞれ時,分,秒
'============================================================
Public Function SecondTime(h As Long, m As Long, s As Long) _
                As Long
    SecondTime = h * 3600 + m * 60 + s
End Function

'============================================================
'GetTimer    時間ss(秒)から時間ms(秒)までの時間を、
'            h時間m分s秒の形で返す。(時間差の計算)
'------引数--------------------------------------------------
'ss,ms      時間差を計算したい時間(ss<ms)
'h,m,s      時間差、それぞれ時,分,秒を格納する
'============================================================
Public Sub GetTimer(ss As Long, ms As Long, h As Long, _
                   m As Long, s As Long)
    h = (ms - ss) \ 3600&
    m = (ms - ss - h * 3600&) \ 60&
    s = (ms - ss - h * 3600&) Mod 60&
End Sub


★クラスの使用法★

 ある時刻から?秒後のじこくを求める場合、次のようなコードで求める ことができます。

    Dim ct As New CGetTime
    Dim h As Long, m As Long, s As Long
    Dim sec As Long
    'ある時刻を秒に換算
    sec = ct.SecondTime(ある時間, , )
    '0時0分0秒からの時間差を求める=求めたい時刻
    Call ct.GetTimer(0, sec + ?秒後, h, m, s)
    Label1.Caption = h & "時" & m & "分" & s & "秒です"


(サンプルプログラムの動作確認)

機種 PC-9821V13S
OS Windows95
開発ツール Visual Basic Ver.4.0
更新日 00/2/2

ダウンロード GetTime.lzh(2.43KB)

Visual Basic Ver.5.0,Ver6.0でも問題なく動作すると思います。
なお、このコーナーに掲載されているプログラムコード、およびプログラムファ イルが原因で起きた損害などに関して一切の責任を負うことはできません。

★このコーナーに掲載されているプログラムコード、およびプログラムファ イルを無断で配布・転載することは、原則として禁止です。


Class Libraryインデックス トップページ


Copyright(C)2000 Tomoya. All rights reserved.