C# 日時を計算するサンプル(加算と減算)

C#の日時を計算するサンプルです。加算と減算を行います。

目次

サンプル 日時を計算するサンプル
  TimeSpanで日時を計算するサンプル

日時を計算するサンプル

public struct DateTime
  public DateTime AddYears(int value);
  public DateTime AddMonths(int months);
  public DateTime AddDays(double value);
  public DateTime AddHours(double value);
  public DateTime AddMinutes(double value);
  public DateTime AddSeconds(double value);

日時を計算するサンプルです。

using System;
class Test1
{
	static void Main()
	{
		// 指定日時をセット 2020/2/10 22:30:10
		//DateTime dt1 = new DateTime(2020, 2, 10, 22, 30, 10);
		DateTime dt1 = Convert.ToDateTime("2020/02/10 22:30:10");

		// 2年後を求める
		Console.WriteLine(dt1.AddYears(2)); // 2022/02/10 22:30:10

		// 2ヶ月後を求める
		Console.WriteLine(dt1.AddMonths(2)); // 2020/04/10 22:30:10

		// 2日前を求める
		Console.WriteLine(dt1.AddDays(-2)); // 2020/02/08 22:30:10

		//2時間後を求める
		Console.WriteLine(dt1.AddHours(2)); // 2020/02/11 0:30:10

		//2分後を求める
		Console.WriteLine(dt1.AddMinutes(2)); // 2020/02/10 22:32:10

		//2秒後を求める
		Console.WriteLine(dt1.AddSeconds(2)); // 2020/02/10 22:30:12
	}
}

7行目は、指定日時に数値を指定しています。
8行目は、日時の文字列をDateTime型に変換しています。
日時の指定はどちらでも可能です。

年月日時分秒とそれぞれメソッドがあります。
引数にプラスの値を指定すると加算します。
減算する場合は、17行目のように引数にマイナス値を指定します。

以下は、MicrosoftのAddYearsメソッドのリンクです。
https://docs.microsoft.com/ja-jp/dotnet/api/system.datetime.addyears?view=netframework-4.8

TimeSpanで日時を計算するサンプル

public struct TimeSpan
  public TimeSpan(int days, int hours, int minutes, int seconds);
  public TimeSpan(int days, int hours, int minutes, int seconds, int milliseconds);

TimeSpanで日時を計算するサンプルです。

using System;
class Test1
{
	static void Main()
	{
		// 指定日時をセット 2020/2/10 22:30:10
		//DateTime dt1 = new DateTime(2020, 2, 10, 22, 30, 10);
		DateTime dt1 = Convert.ToDateTime("2020/02/10 22:30:10");

		// 5日と30分をセット
		TimeSpan ts1 = new TimeSpan(5, 0, 30, 0);

		// 足し算
		DateTime dt2 = dt1 + ts1;
		Console.WriteLine(dt2); // 2020/02/15 23:00:10

		// 引き算
		DateTime dt3 = dt1 - ts1;
		Console.WriteLine(dt3); // 2020/02/05 22:00:10
	}
}

7行目は、指定日時に数値を指定しています。
8行目は、日時の文字列をDateTime型に変換しています。
日時の指定はどちらでも可能です。

11行目は、TimeSpan構造体です。1つめの引数は日数で以降は時間、分、秒です。
例では、5日と30分を指定しています。
14行目は、足し算をして日時を求めています。
18行目は、引き算をして日時を求めています。

以下は、MicrosoftのTimeSpan構造体のリンクです。
https://docs.microsoft.com/ja-jp/dotnet/api/system.timespan?view=netframework-4.8

関連の記事

C# 現在日時の取得と表示形式のサンプル

△上に戻る