0

日時を定義するために、予想外に複雑なプロセスを実行しました

基になるデータの精度はミリ秒よりも優れています。

最終的に、最も近い秒に中間の日時を作成し、その値をティック(10000からミリ秒)で読み取り、ティックを調整してから、実際に必要な日時を作成しました。

私は、秒をdoubleとして取り、文字列の日付/時刻形式指定子をとるコンストラクターを期待していました。どちらも存在しないようです。

誰かが良い代替アプローチを手に入れましたか?

4

2 に答える 2

4

DateTime1秒の端数に基づいてをインスタンス化する直接的な方法はありません。あなたが発見したように、あなたが得ることができる最も近いものはダニを使うことです。このような関数を使用すると、少なくともDateTime、すべての場合に複数のを作成する必要がなくなります。

public DateTime DateTimeFromFractionalSeconds(int year, int month, int day, int hour, int minute, double seconds)
{
    return new DateTime(year, month, day, hour, minute).AddTicks((long)(seconds * 1000000000));
}

あなたは、デザイナーがそのようなコンストラクターを含めることができたのは正しいです。ただし、DateTimeクラスは数分程度よりも数秒程度に基づいているわけではありません。分数秒が必要なことはわかっていますが、分数秒が分数分よりも正当であると本当に主張できますか?または時間?クラスはDateTimeダニに基づいています。これは、処理する分割できない最小の測定単位です。そのため、最も詳細なコンストラクターはティックで表されます。

于 2009-10-07T01:39:49.493 に答える
1

この日時を使用してコードの実行にかかる時間を随時使用する場合は、Stopwatchストップウォッチクラスを使用することをお勧めします。DateTimeオブジェクトでは使用できない高精度タイマーを使用します。何かが2ポイントの間にかかる時間を計っておらず、現在の時刻をミリ秒よりも正確なものにしたい場合は、少しやり過ぎで、それほど正確である必要はないかもしれません。余分な精度は無意味です。

于 2009-10-07T01:45:29.433 に答える