C#での日付計算方法とは?TimeSpanで加減算とAdd関数で加減算
公開日時:

- SE
- C#で日付を計算するにはどうすればいいのですか。
- PM
- C#で日付を計算するにはDateTimeクラスとTimeSpanクラスを利用したり、AddYears/AddMonths/AddDaysなどを利用したりします。
C#での日付計算方法とは?
今回は、C#での日付計算方法について説明します。DateTimeクラスとTimeSpanクラスを利用した日付計算や、AddYears/AddMonths/AddDaysなどを利用した日付計算について紹介します。また、日付差分の計算方法についても紹介します。
C#での日付計算方法に興味のある方はぜひご覧ください。
TimeSpanで加減算
C#でのDateTimeクラスとTimeSpanクラスを利用した日付計算方法を紹介します。実際のソースコードを見てみましょう。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
using System; public class Hello{ public static void Main(){ // 初期化 DateTime dateTime = DateTime.Parse(""2021/03/22 10:20:30""); TimeSpan timeSpan = new TimeSpan(2, 10, 20); Console.WriteLine(dateTime.ToString(""yyyy/MM/dd HH:mm:ss"")); // 2021/03/22 10:20:30 Console.WriteLine(timeSpan); // 02:10:20 // 日付計算(DateTimeとTimeSpanの加算) Console.WriteLine((dateTime + timeSpan).ToString(""yyyy/MM/dd HH:mm:ss"")); // 2021/03/22 12:30:50 // 日付計算(DateTimeとTimeSpanの減算) Console.WriteLine((dateTime - timeSpan).ToString(""yyyy/MM/dd HH:mm:ss"")); // 2021/03/22 08:10:10 } } |
実行結果は以下のようになります。
1 2 3 4 |
2021/03/22 10:20:30 02:10:20 2021/03/22 12:30:50 2021/03/22 08:10:10 |
このようにC#では、DateTimeとTimeSpanを利用した加減算ができます。
Add関数で加減算
C#では、DateTimeクラスのAdd関数を利用した日付計算ができます。実際のソースコードを見てみましょう。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
using System; public class Hello{ public static void Main(){ // 初期化 DateTime dateTime = DateTime.Parse(""2021/03/22 10:20:30""); Console.WriteLine(dateTime.ToString(""yyyy/MM/dd HH:mm:ss"")); // 2021/03/22 10:20:30 // AddYearsで日付計算(年の加減算) Console.WriteLine(""AddYears""); Console.WriteLine(dateTime.AddYears(1).ToString(""yyyy/MM/dd HH:mm:ss"")); // 2022/03/22 10:20:30 Console.WriteLine(dateTime.AddYears(-1).ToString(""yyyy/MM/dd HH:mm:ss"")); // 2020/03/22 10:20:30 // AddMonthsで日付計算(月の加減算) Console.WriteLine(""AddMonths""); Console.WriteLine(dateTime.AddMonths(1).ToString(""yyyy/MM/dd HH:mm:ss"")); // 2021/04/22 10:20:30 Console.WriteLine(dateTime.AddMonths(-1).ToString(""yyyy/MM/dd HH:mm:ss"")); // 2021/02/22 10:20:30 // AddDaysで日付計算(日の加減算) Console.WriteLine(""AddDays""); Console.WriteLine(dateTime.AddDays(1).ToString(""yyyy/MM/dd HH:mm:ss"")); // 2021/03/23 10:20:30 Console.WriteLine(dateTime.AddDays(-1).ToString(""yyyy/MM/dd HH:mm:ss"")); // 2021/03/21 10:20:30 } } |
実行結果は以下のようになります。
1 2 3 4 5 6 7 8 9 10 |
2021/03/22 10:20:30 AddYears 2022/03/22 10:20:30 2020/03/22 10:20:30 AddMonths 2021/04/22 10:20:30 2021/02/22 10:20:30 AddDays 2021/03/23 10:20:30 2021/03/21 10:20:30 |
ここでは紹介していませんが、AddHours/AddMinutes/AddSecondsなどの関数もあります。このようにC#では、DateTimeクラスのAdd関数を利用した日付計算ができます。
Add関数で加減算(応用編)
C#のAdd関数を応用した日付計算について紹介します。実際のソースコードを見てみましょう。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
using System; public class Hello{ public static void Main(){ // 初期化 DateTime dateTime = DateTime.Parse(""2021/03/21""); Console.WriteLine(dateTime.ToString(""yyyy/MM/dd"")); // 2021/03/21 // 当月初日 Console.WriteLine(new DateTime(dateTime.Year, dateTime.Month, 1).ToString(""yyyy/MM/dd"")); // 2021/03/01 // 当月末日 Console.WriteLine(new DateTime(dateTime.Year, dateTime.Month, 1).AddMonths(1).AddDays(-1).ToString(""yyyy/MM/dd"")); // 2021/03/31 // 翌月初日 Console.WriteLine(new DateTime(dateTime.Year, dateTime.Month, 1).AddMonths(1).ToString(""yyyy/MM/dd"")); // 2021/04/01 // 翌月末日 Console.WriteLine(new DateTime(dateTime.Year, dateTime.Month, 1).AddMonths(2).AddDays(-1).ToString(""yyyy/MM/dd"")); // 2021/04/30 // 年度 Console.WriteLine(dateTime.AddMonths(-3).Year); // 2020 } } |
実行結果は以下のようになります。
1 2 3 4 5 6 |
2021/03/21 2021/03/01 2021/03/31 2021/04/01 2021/04/30 2020 |
日付差分
C#での日付差分の計算方法について紹介します。実際のソースコードを見てみましょう。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
using System; public class Hello{ public static void Main(){ // 初期化 DateTime dateFrom = DateTime.Parse(""2021/03/21 10:20:30""); DateTime dateTo = DateTime.Parse(""2021/03/22 10:20:30""); // 差分を計算 TimeSpan interval = dateTo - dateFrom; Console.WriteLine(""DateDiff: {0} Days"", interval.TotalDays); // DateDiff: 1 Days Console.WriteLine(""HourDiff: {0} Hours"", interval.TotalHours); // HourDiff: 24 Hours Console.WriteLine(""MinuteDiff: {0} Minutes"", interval.TotalMinutes); // MinuteDiff: 1440 Minutes Console.WriteLine(""SecondDiff: {0} Seconds"", interval.TotalSeconds); // SecondDiff: 86400 Seconds Console.WriteLine(""MillisecondDiff: {0} Milliseconds"", interval.TotalMilliseconds); // MillisecondDiff: 86400000 Milliseconds } } |
実行結果は以下のようになります。
1 2 3 4 5 |
DateDiff: 1 Days HourDiff: 24 Hours MinuteDiff: 1440 Minutes SecondDiff: 86400 Seconds MillisecondDiff: 86400000 Milliseconds |
- SE
- C#での日付計算方法がよくわかりました。
- PM
- 日付差分の計算方法についても紹介しましたので参考にしてください。
まとめ
いかがでしたでしょうか。C#でのDateTimeクラスとTimeSpanクラスを利用した日付計算や、AddYears/AddMonths/AddDaysなどを利用した日付計算について紹介しました。また、日付差分の計算方法についても紹介しました。
ぜひご自身でC#のソースコードを書いて、理解を深めてください。