1

私はちょうどこれを自分で書こうとしていましたが、これが存在しなければならないことを知っており、私をそれに導くすべての Google キーワードをなんとか回避しています。

D、M、Y が日、月、年の数である DDDMMMYYY のようなものを探しています。したがって、00103000 は 3 か月と 1 日、または 000000001 は 1 年のスパンを示します。理想的には、この形式には、1 か月のさまざまな日数、うるう年など、タイムスパン計算のすべての落とし穴を考慮できる、標準的な適用方法もあるはずです。

ここで尋ねられたように、2つの既知のタイムスタンプ間のタイムスパンを計算する方法を探していません( C#での相対時間の計算)、時間のスパンを示す、保存できる特定の文字列形式のようなものを探しています既知のものから 2 番目の未知の日付を決定するために使用されます。

上記の架空の形式を使用すると、「2009 年 9 月 15 日から 00103000 になる日付を計算する」と言った場合、「2009 年 12 月 16 日」が返されます。これは、9 月 15 日から 3 か月と 1 日後です。

4

2 に答える 2

4

期間については、 ISO 8061形式を参照することをお勧めします。特定の日付を解析して適用するのが簡単であるだけでなく、多くのリソースが利用できるよく知られた標準です。

2 つの時点から期間を判断するのは少し面倒ですが、アプリケーションからの入力がなければ、3 月 1 日から 6 月 1 日までが 3 か月なのか 92 日なのかが不明なためです。それにもかかわらず、この形式は、たとえば 0.25 年と同じように適切に表現できます。

于 2009-10-22T16:23:38.970 に答える
2

これの最も単純で最も一般的な表現は数値です: タイムスパンの秒数 (必要に応じて、分数である場合とそうでない場合があります)。多くの時刻ライブラリは、エポックからの秒数として時刻をすでに表しているため、時刻の加算と減算は簡単です。懸念される唯一の主要な問題はオーバーフローです (例: 2038 年のバグ)。

于 2009-10-22T16:09:59.730 に答える