ASP.NET Core MVC で「今日が月の1日ならば」という条件判定は、
DateTime.Today.Day == 1 を使えば簡単に書けます。
例えば、SomethingDo() を呼び出す条件部分は以下のようになります。
using System;
public class MyService
{
public void SomethingDo()
{
// 実行したい処理
Console.WriteLine("毎月1日の処理を実行しました。");
}
public void CheckAndRun()
{
// 今日が月の1日かどうか判定
if (DateTime.Today.Day == 1)
{
SomethingDo();
}
}
}
補足
DateTime.Today は時刻部分を 00:00 にした日付を返します。Day プロパティはその月の日にち(1〜31)を返します。- このコードは「呼び出されたタイミングで今日が1日なら実行」するだけなので、
実際に毎月1日に自動実行したい場合は スケジューラ が必要です。
ASP.NET Core で自動実行するには例えば:
- IHostedService / BackgroundService を使って定期的にチェック
- Quartz.NET や Hangfire などのジョブスケジューラを利用
- OS のタスクスケジューラや cron で HTTP エンドポイントを叩く
もしご希望なら、この「毎月1日に自動実行する」ための ASP.NET Core BackgroundService 実装例 も作れますが、作成しますか?
そうすればアプリが稼働中に自動で SomethingDo() が呼ばれます。