2011-01-25 7 views

答えて

10

DateTime.AddDaysだけでダニに日を変換し、日付時刻にティックのこの番号を追加します。 Calendar.AddDaysのデフォルトの実装はまったく同じです。しかし、それは仮想メソッドであるため、より複雑な方法で特定のカレンダーに実装することができます。ここのようなもの:http://codeblog.jonskeet.uk/2010/12/01/the-joys-of-date-time-arithmetic/

0

私が知る限り、Calendar.AddDaysメソッドはDateTimeオブジェクトを返し、その関数を呼び出します。

7

私は、DateTimeがグレゴリオ暦を効果的に使用するようにハードコードされていると信じています。あなたはDateTime.DaysInMonthを見ればHebrewCalendarは13

EDITをサポートし、一方、例えば

は、それは、12ヶ月がある前提としていますを行うDateTimeのいくつかの側面があり、そのようなthis constructorなどの他のカレンダーを、受け入れます。しかし、私はそれだけでグレゴリオ暦に変換信じる:

Calendar calendar = new HebrewCalendar(); 
DateTime dt = new DateTime(5901, 13, 1, 0, 0, 0, calendar); // Uses month 13! 
Console.WriteLine(dt.Year); // 2141 
Console.WriteLine(dt.Month); // 9 
+0

ありがとうございました。 Reflectorは、calendar.ToDateTime(年、月、日、時、分、秒、0)を使用していることを示します。 – Jarlaxle

0

この質問に対する回答は非常に簡単です。 2つの機能には違いはありません。

Calendar.AddDays

DateTimeのは、それが使用する唯一の事はUTCおよび現地時間である特定の機能を拡張しない日時です。カレンダーはDateTimeオブジェクトではなく、同じ動作をしない可能性があります()。現在のシステム時刻を取得する方法は提供されていません。

編集 - 私はもともと、あなたが指定したユーザーベースの現在の日付と時刻を、宣言されたオペレーティングシステムの設定を表示するためのグローバリゼーションであると思われていました。

関連する問題