C#で相対時間を計算できるようになれば、あなたのプログラミングスキルが飛躍的に向上する!
C#で相対時間を計算する方法
DateTime 構造体を使う
DateTime
構造体は、日付と時刻を表す型です。この構造体には、相対時間を計算するためのいくつかのメソッドが用意されています。
例えば、以下のコードは、現在時刻から2時間後の時刻を取得します。
DateTime now = DateTime.Now;
DateTime twoHoursLater = now.AddHours(2);
また、以下のコードは、2つの DateTime
構造体間の差分を取得します。
DateTime startTime = new DateTime(2023, 12, 31, 23, 59, 59);
DateTime endTime = new DateTime(2024, 1, 1, 1, 0, 0);
TimeSpan timeSpan = endTime - startTime;
Console.WriteLine(timeSpan.ToString()); // 1時間1分1秒
TimeSpan 構造体を使う
例えば、以下のコードは、2時間30分間の TimeSpan
構造体を作成します。
TimeSpan timeSpan = new TimeSpan(2, 30, 0);
また、以下のコードは、TimeSpan
構造体から日数、時間、分、秒を取得します。
TimeSpan timeSpan = new TimeSpan(1, 2, 3, 4);
int days = timeSpan.Days; // 1
int hours = timeSpan.Hours; // 2
int minutes = timeSpan.Minutes; // 3
int seconds = timeSpan.Seconds; // 4
上記以外にも、ライブラリやフレームワークを使って相対時間を計算する方法があります。
例えば、Noda Time ライブラリは、日付と時刻を扱うための拡張機能を提供しています。
using NodaTime;
LocalDate today = LocalDate.Today;
LocalDate tomorrow = today.PlusDays(1);
Console.WriteLine(tomorrow.ToString()); // 2024-01-04
現在時刻から2時間後の時刻を取得する
using System;
public class Program
{
public static void Main()
{
DateTime now = DateTime.Now;
DateTime twoHoursLater = now.AddHours(2);
Console.WriteLine(twoHoursLater.ToString());
}
}
2024-04-03 15:14:00
2つの DateTime 構造体間の差分を取得する
using System;
public class Program
{
public static void Main()
{
DateTime startTime = new DateTime(2023, 12, 31, 23, 59, 59);
DateTime endTime = new DateTime(2024, 1, 1, 1, 0, 0);
TimeSpan timeSpan = endTime - startTime;
Console.WriteLine(timeSpan.ToString());
}
}
出力例:
1.01:01:01
2時間30分間の TimeSpan 構造体を作成する
using System;
public class Program
{
public static void Main()
{
TimeSpan timeSpan = new TimeSpan(2, 30, 0);
Console.WriteLine(timeSpan.ToString());
}
}
02:30:00
TimeSpan 構造体から日数、時間、分、秒を取得する
using System;
public class Program
{
public static void Main()
{
TimeSpan timeSpan = new TimeSpan(1, 2, 3, 4);
int days = timeSpan.Days;
int hours = timeSpan.Hours;
int minutes = timeSpan.Minutes;
int seconds = timeSpan.Seconds;
Console.WriteLine($"{days}日 {hours}時間 {minutes}分 {seconds}秒");
}
}
1日 2時間 3分 4秒
Noda Time ライブラリを使って明日を取得する
using NodaTime;
public class Program
{
public static void Main()
{
LocalDate today = LocalDate.Today;
LocalDate tomorrow = today.PlusDays(1);
Console.WriteLine(tomorrow.ToString());
}
}
2024-04-04
手計算
簡単な計算であれば、手計算で相対時間を計算することもできます。
例えば、現在時刻が10時30分で、2時間後の時刻を知りたい場合は、以下の式で計算できます。
10:30 + 2:00 = 12:30
計算機を使う
計算機を使えば、より複雑な計算も簡単にできます。
例えば、2023年12月31日 23時59分から2024年1月1日 1時0分までの時間差を知りたい場合は、以下の手順で計算できます。
- 計算機に「202401010100 - 202312312359」と入力します。
- Enterキーを押すと、結果が表示されます。
この場合、結果は「3600」です。つまり、時間差は3600秒、つまり1時間です。
オンラインツールを使う
インターネット上には、相対時間を計算できるオンラインツールがいくつかあります。
例えば、以下のツールを使うことができます。
これらのツールを使えば、簡単に相対時間を計算することができます。
ライブラリやフレームワークを使う
C#には、日付と時刻を扱うためのライブラリやフレームワークがいくつかあります。
例えば、以下のライブラリやフレームワークを使うことができます。
c# datetime time