コガネブログ

平日更新を目標に Unity や C#、Visual Studio、ReSharper などのゲーム開発アレコレを書いていきます

【C#】DateTime で使用できる拡張メソッドが増える「Exceptionless.DateTimeExtensions」紹介

はじめに

「Exceptionless.DateTimeExtensions」をプロジェクトに追加することで
DateTime で使用できる拡張メソッドが増えます

インストール

f:id:baba_s:20180129175245p:plain

Visual Studio メニューの「ツール>NuGet パッケージ マネージャー>
ソリューションの NuGet パッケージの管理」を選択します

f:id:baba_s:20180130111341p:plain

「参照」タブを選択して、検索欄に「Exceptionless.DateTimeExtensions」と入力して
表示された「Exceptionless.DateTimeExtensions」を選択します

f:id:baba_s:20180130111351p:plain

インストールしたいプロジェクトをチェックして「インストール」ボタンを押します

使い方

using Exceptionless.DateTimeExtensions;

「Exceptionless.DateTimeExtensions」を使用する際は、
ソースコードの先頭に上記の using を追加します

拡張メソッド

Business Day

指定された日時が営業時間内かどうかを確認します

var date = DateTime.Now.StartOfDay().AddHours(8);

var day = new BusinessDay(date.Date.DayOfWeek,
    date.Subtract(TimeSpan.FromHours(1)).TimeOfDay,
    date.AddHours(1).TimeOfDay);

bool isDay = day.IsBusinessDay(date);

DateTime Ranges

指定された日時が範囲内かどうかを確認します

var range = DateTimeRange.Parse("yesterday", DateTime.Now);
if (range.Contains(DateTime.Now.Subtract(TimeSpan.FromHours(6)))) {
  //...
}

TimeUnit

指定された文字列を TimeSpan に変換します

TimeSpan oneNanosecond = TimeUnit.Parse("1nanos");
TimeSpan oneMicrosecond = TimeUnit.Parse("1micros");
TimeSpan oneMillisecond = TimeUnit.Parse("1ms");
TimeSpan oneSecond = TimeUnit.Parse("1s");
TimeSpan oneMinute = TimeUnit.Parse("1m");
TimeSpan oneHour = TimeUnit.Parse("1h");
TimeSpan oneDay = TimeUnit.Parse("1d");

DateTime 拡張メソッド

DateTime.Now.ToApproximateAgeString(); // "Just now"
var time = DateTime.Now.StartOfMinute();
var lastWeek = DateTime.Now.LastWeek();
var nextWeek = DateTime.Now.NextWeek();

DateTimeOffset 拡張メソッド

DateTimeOffset.Now.ToApproximateAgeString(); // "Just now"
var startOfMonth = DateTimeOffset.Now.ToStartOfMonth();
var endOfMonth = DateTimeOffset.Now.ToEndOfMonth();

Timespan 拡張メソッド

var years = TimeSpan.FromHours(6).GetYears();
var totalYears = TimeSpan.FromHours(6).GetTotalYears();