C#
 Computer >> コンピューター >  >> プログラミング >> C#

C#のDateTimeOffset.AddSeconds()メソッドの使い方を徹底解説

C#のDateTimeOffset.AddSeconds()メソッドは、現在のインスタンスが表す日時に指定した秒数(整数・小数どちらも可)を加算し、その結果を新しいDateTimeOffsetオブジェクトとして返します。元のインスタンスの値は変更されないため、安全に日時計算を行うことができます。

構文

AddSeconds()メソッドの構文は以下のとおりです。

public DateTimeOffset AddSeconds (double val);

引数valには、加算する秒数をdouble型で指定します。秒数を減算したい場合は、負の値を設定してください。

使用例1:秒数を加算する

まずは、AddSeconds()メソッドを使って秒数を加算する基本的な例を見てみましょう。

using System;
public class Demo {
    public static void Main() {
        DateTimeOffset dateTimeOffset = new DateTimeOffset(2019, 10, 11, 7, 10, 20, new TimeSpan(-5, 0, 0));
        Console.WriteLine("DateTimeOffset (before adding seconds) = {0}", dateTimeOffset);
        DateTimeOffset res = dateTimeOffset.AddSeconds(30);
        Console.WriteLine("DateTimeOffset (after adding seconds) = {0}", res);
    }
}

出力結果

上記のコードを実行すると、次のような出力が得られます。

DateTimeOffset (before adding seconds) = 10/11/2019 7:10:20 AM -05:00
DateTimeOffset (after adding seconds) = 10/11/2019 7:10:50 AM -05:00

この例では、2019年10月11日7時10分20秒(UTCオフセット-05:00)の時刻に対して30秒を加算しているため、結果は7時10分50秒になっています。

使用例2:負の値で秒数を減算する

次に、負の値を渡して秒数を減算する例を確認しましょう。

using System;
public class Demo {
    public static void Main() {
        DateTimeOffset dateTimeOffset = new DateTimeOffset(2019, 11, 11, 8, 20, 10, new TimeSpan(-5, 0, 0));
        Console.WriteLine("DateTimeOffset (before subtracting seconds) = {0}", dateTimeOffset);
        DateTimeOffset res = dateTimeOffset.AddSeconds(-10);
        Console.WriteLine("DateTimeOffset (after subtracting seconds) = {0}", res);
    }
}

出力結果

実行すると、以下の出力が得られます。

DateTimeOffset (before subtracting seconds) = 11/11/2019 8:20:10 AM -05:00
DateTimeOffset (after subtracting seconds) = 11/11/2019 8:20:00 AM -05:00

このように、引数に-10を指定することで、8時20分10秒から10秒減算され、8時20分00秒という結果が得られます。

まとめ

DateTimeOffset.AddSeconds()メソッドを使用すると、UTCオフセット情報を保持したまま日時に対して秒単位の加算・減算を簡単に行えます。小数秒にも対応しているため、ミリ秒単位の精密な時間計算が必要な場面でも活用できます。なお、元のオブジェクトは変更されず、常に新しいDateTimeOffsetインスタンスが返される点も覚えておきましょう。

  1. C#のDateTimeOffset.Compare()メソッドの使い方をわかりやすく解説

    C#のDateTimeOffset.Compare()メソッドは、2つのDateTimeOffsetオブジェクトを比較し、最初の日時が2番目の日時よりも「前」なのか、「同じ」なのか、それとも「後」なのかを判定するための静的メソッドです。このメソッドは整数値(int型)を返し、その戻り値によって比較結果が以下のように表されます。0未満 − val1がval2より早い日時である場合0 − val1とval2が同一の日時である場合0より大きい − val1がval2より遅い日時である場合構文DateTimeOffset.Compare()メソッドの構文は以下の通りです。public static i

  2. 【C#入門】DateTimeOffset.AddYears()メソッドの使い方を徹底解説

    C#のDateTimeOffset.AddYears()メソッドは、現在のDateTimeOffsetインスタンスが表す日時に、指定した年数を加算した新しいDateTimeOffset値を返すメソッドです。元のインスタンスの値は変更されず、計算結果が新しいオブジェクトとして返される点に注意してください。構文AddYears()メソッドの構文は以下のとおりです。public DateTimeOffset AddYears (int val);引数valには、加算する年数を整数で指定します。負の値を指定すると、年数を減算(過去にさかのぼる)ことができます。主な特徴戻り値は新しいDateTimeOf