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#のソースコードを書いて、理解を深めてください。
Search キーワード検索
Popular 人気の記事
-
【VB.NET入門】DataGridViewの使い方まとめ
公開: 更新:
reccomended おすすめ記事
-
【.NETが統合】.NET 5の概要と今後のリリース予定
公開: 更新:
Categories 連載一覧
Tags タグ一覧
Jobs 新着案件
-
開発エンジニア/東京都品川区/【WEB面談可】/在宅ワーク
月給29万~30万円東京都品川区(大崎駅) -
遠隔テストサービス機能改修/JavaScript/東京都港区/【WEB面談可】/テレワーク
月給45万~60万円東京都港区(六本木駅) -
病院内システムの不具合対応、保守/東京都豊島区/【WEB面談可】/テレワーク
月給30万~30万円東京都豊島区(池袋駅) -
開発/JavaScript/東京都豊島区/【WEB面談可】/テレワーク
月給50万~50万円東京都豊島区(大塚駅) -
債権債務システム追加開発/東京都文京区/【WEB面談可】/在宅勤務
月給62万~67万円東京都文京区(後楽園駅) -
PMO/東京都豊島区/【WEB面談可】/在宅勤務
月給55万~55万円東京都豊島区(池袋駅)