このトピックはまだ評価されていません - このトピックを評価する

DateTime.AddHours メソッド

2013/12/12

このインスタンスの値に、指定した時間数を加算した新しい DateTime を返します。

Namespace:  System
アセンブリ:  mscorlib (mscorlib.dll 内)
public DateTime AddHours(
	double value
)

パラメーター

value
型: System.Double
加算する時間数。整数部と小数部から構成されます。この値は、正の場合もあれば負の場合もあります。

戻り値

型: System.DateTime
このインスタンスで表された日時に value で表された時間数を加算した値を示すオブジェクト。
例外条件
ArgumentOutOfRangeException

結果の DateTimeDateTime.MinValue より前か DateTime.MaxValue より後になっています。

このメソッドは、DateTime の値を変更しません。代わりに、この操作の結果を示す値を持つ新しい DateTime が返されます。返される DateTime オブジェクトの Kind プロパティは、元の DateTime オブジェクトのプロパティと同じです。

value の小数部は 1 時間の端数です。たとえば、4.5 は 4 時間と、30 分 0 秒 0 ミリ秒 0 タイマー刻みに相当します。

value パラメーターは、近似値のミリ秒に丸められます。

1 時間未満の時間間隔を小数に変換して、結果が無限循環小数になると、精度の損失が生じることがあります。たとえば、1 分は 0.016667 時間に換算されます。このことが問題になる場合は、Add メソッドを使用してください。1 回のメソッド呼び出しで複数の種類の時間間隔を指定できるため、時間間隔を 1 時間の端数に変換する必要はありません。

次の例では、AddHours メソッドを使用して、整数部と小数部から成る値を日付と時刻に加算します。また、このメソッドに小数部を含む値を渡すことで発生する精度の低下も示します。


using System;

public class Example
{
   public static void Demo(System.Windows.Controls.TextBlock outputBlock)
   {
      double[] hours = {.08333, .16667, .25, .33333, .5, .66667, 1, 2, 
                        29, 30, 31, 90, 365};
      DateTime dateValue = new DateTime(2009, 3, 1, 12, 0, 0);

      foreach (double hour in hours)
         outputBlock.Text += String.Format("{0} + {1} hour(s) = {2}\n", dateValue, 
                                           hour, dateValue.AddHours(hour));
   }
}
// The example displays the following output on a system whose current
// culture is en-US:
//    3/1/2009 12:00:00 PM + 0.08333 hour(s) = 3/1/2009 12:04:59 PM
//    3/1/2009 12:00:00 PM + 0.16667 hour(s) = 3/1/2009 12:10:00 PM
//    3/1/2009 12:00:00 PM + 0.25 hour(s) = 3/1/2009 12:15:00 PM
//    3/1/2009 12:00:00 PM + 0.33333 hour(s) = 3/1/2009 12:19:59 PM
//    3/1/2009 12:00:00 PM + 0.5 hour(s) = 3/1/2009 12:30:00 PM
//    3/1/2009 12:00:00 PM + 0.66667 hour(s) = 3/1/2009 12:40:00 PM
//    3/1/2009 12:00:00 PM + 1 hour(s) = 3/1/2009 1:00:00 PM
//    3/1/2009 12:00:00 PM + 2 hour(s) = 3/1/2009 2:00:00 PM
//    3/1/2009 12:00:00 PM + 29 hour(s) = 3/2/2009 5:00:00 PM
//    3/1/2009 12:00:00 PM + 30 hour(s) = 3/2/2009 6:00:00 PM
//    3/1/2009 12:00:00 PM + 31 hour(s) = 3/2/2009 7:00:00 PM
//    3/1/2009 12:00:00 PM + 90 hour(s) = 3/5/2009 6:00:00 AM
//    3/1/2009 12:00:00 PM + 365 hour(s) = 3/16/2009 5:00:00 PM


Windows Phone OS

サポート: 8.0, 7.1, 7.0

この情報は役に立ちましたか。
(残り 1500 文字)
フィードバックをいただき、ありがとうございました
表示:
© 2014 Microsoft. All rights reserved.