3

ファイルにAda.Real_Time.Timeを書きたいのですが、

どうやってやるの?

ありがとう

4

4 に答える 4

6

を使用して、(a)エポックからの秒数、タイプ、および(b)小数部分、タイプ (private)Ada.Real_Time.Splitに変換できます。を使用して、小数部分を に変換できます。Ada.Real_Time.TimeAda.Real_Time.Seconds_CountAda.Real_Time.Time_SpanAda.Real_Time.To_DurationDuration

その後、 と を使用Ada.Real_Time.Seconds_Count'ImageDuration'Imageて に変換できStringます。

しかし、何のために文字列が必要ですか? 単一の実行で物事がいつ発生したかを比較する場合は問題ありませんが、エポックがいつであったかを言う言語定義には何もありません。たとえば、コンピュータが最後に起動された時刻である可能性があります。

于 2010-05-31T20:31:17.067 に答える
3

パッケージ Ada.Real_time は、直接形式のメソッドを提供しません。

Ada.Calendar.Formatting をご覧になることをお勧めします。Ada.Real_time のようなメソッド Clock があります。実際、String を返すメソッド Image(parameters : Time) があります。

詳細:パッケージ: Ada.Calendar.Formatting

于 2010-05-31T19:01:41.557 に答える
3

Time を Seconds_Count と Time_Span に変換する Ada.Real_Time.Split() 関数を呼び出します。Seconds_Count 値はエポックから経過した秒数であり、Time_Span 値はその最後の 1 秒後の (非常に小さい) Time_Units の数です。詳細については、 D.8 単調時間(29) を参照してください。

Seconds_Count はパッケージで公開されており、Time_Span は To_Duration() を介して Duration に変換できます。

プロセスを逆にして Time_Of() を使用して Time 値を再構築できることに注意してください。

于 2010-05-31T20:19:49.603 に答える
2

読み取り可能なテキストとして必要ではなく、ファイルに保存するだけの場合は、ストリーム出力属性 ( 'Write)を使用してみてください。

于 2010-06-01T05:46:50.250 に答える