Time関数を理解するには


アンドロメダ  2003-06-08 02:51:40  No: 107440

ご質問(Time関数)
      (1)Time関数は次のような二つの顔を持っていると
            理解していいのでしょうか。
              A.現在の時刻を返す、その書式は「15:26:29」

              B.数式例えば「1-Time」のように使われるとTimeが
                1以下の小数というデータを持っているのでその値を
                RestTime(残り時間)に代入することができる。
                1日が数字の1と定義されているから1秒は
                1/60*60*24という小数になりますね。

                RestTime=1-Time

      (2)すなわちTime関数は小数値というデータを持っている。

                Label_kakuninn.Caption=Time      という使い方

          もう一方の使い方は

                RestTime=1-Time      現在の時刻を小数に換算して
                                          残り時間を計算する

      このような理解で正しいのでしょうか。


Say  2003-06-08 03:57:44  No: 107441

Time関数はシステム時刻を内部処理形式 Date の Variantで返します。
実体は24:00:00を1とする小数です。

MsgBox CDate(0.5)
とやってみればわかるように、小数をDate型として表示すると
hh:nn:ss の表記になります。

変数内に「hh:nn:ss」という書式で保持しているわけではありません。

>                RestTime=1-Time      現在の時刻を小数に換算して
>                                          残り時間を計算する

原理的には可能ですが、
負の小数で問題を生じやすいので、Datediffを使ってください。

MsgBox Format(CDate(0), "yyyy/mm/dd hh:nn:ss")
とすればわかりますが、時間計算は
実は内部では1899年12月30日0時0分0秒を原点とする
経過時間の差とみなして計算しています。


アンドロメダ  2003-06-09 03:35:15  No: 107442

Say さん、有難うございました。
    MsgBox CDate(0.5)    これは12:00:00:00と表示されました。
    また、
    MsgBox Format(CDate(0), "yyyy/mm/dd hh:nn:ss")は
    1899/12/30 00:00:00と表示され、おっしゃることが確認できました。

    ただ、Datediff関数についてはこれからStudyします。
    解らないところがあれば再度ご質問します、超初心者の質問に対し
    ご親切に教えていただき有難うございました。


アンドロメダ  2003-06-13 15:57:03  No: 107443

理解できました、Time関数が二つの顔を持っているのではなく、これは小数
というデータを持っているのですね。
ただFormat関数を使って表示のスタイル(hh:mm:ss)を任意に変えているから、こんな理解になってしまったようです。

有難うございました


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加