Macromedia Director非公式テクニカルノート

現在時刻を調べる

ID: FN0108005 Product: Director

Platform: All
Viersion: 8.0 and above

1. (the systemDate).seconds
Director 8.0より、日付オブジェクトに'seconds'プロパティが実装されました。その日付オブジェクトに設定指された深夜0時からの秒数を返します。システムプロパティ'systemDate'はデフォルトでこのプロパティ値をもっています。'systemDate'の'seconds'プロパティは、深夜零時から現在までの秒数を返します('seconds'および'systemDate'について、詳しくはオンラインヘルプまたは『Lingo辞書』をご参照ください)。

[メッセージウインドウでのテスト例]
put (the systemDate).seconds
-- 61200

取得した秒数をストリングの時刻に変換するには、'framesToHMS'関数を使うことができます(この関数について、詳しくはオンラインヘルプまたは『Lingo辞書』をご参照ください)。

[メッセージウインドウでのテスト例]
put framesToHMS(61200, 1, 0, 0)
-- " 17:00:00.00 "
put framesToHMS(61200, 1, 0, 0).word[1].char[1..8]
-- "17:00:00"

2. 現在時刻を時・分・秒のリストで返すスクリプト
時刻を数値として扱いたい場合は、60で割った商と余りを出し、商はさらに60で割り、余りを順次秒・分・時に割り当てればよいでしょう。現在時刻を時・分・秒のリストで返すサンプルのユーザー定義関数(ムービースクリプト)と、メッセージウィンドウでの実行例は以下のとおりです。

[メッセージウインドウでのテスト例]
put xGetTime()
-- [17, 0, 0]

-- [現在時刻を返すムービースクリプト]
on xGetTime
  nSeconds = (the systemDate).seconds
  lTime = []
  -- 60で割った余りをリストに格納
  repeat with i = 1 to 3
    nTime = nSeconds mod 60
    lTime.addAt(1, nTime)
    nSeconds = nSeconds / 60
  end repeat
  return lTime
end

*注記
Director 8.0および8.5では、'seconds'プロパティの返す秒数が、システムクロックの秒値と誤差を生じる場合があります。併せて[FN0108006]「secondsプロパティで調べた現在の秒数とシステムクロックの秒数に誤差が生じる」をご参照ください。

_____

作成者: 野中文雄
作成日: 2001年8月12日


© 2001 and beyond Fumio Nonaka All rights reserved.