[解決済み】日付範囲をループする方法は?
2022-04-05 15:38:15
質問
私は、恐ろしいforループ/カウンタタイプのソリューションを使用せずにこれを行う方法についてさえ分からないのです。 問題は以下の通りです。
開始日と終了日の2つの日付を指定され、指定された間隔で何らかのアクションを起こす必要があります。例えば、2009年3月10日から2009年3月26日までの3日ごとの日付について、リストにエントリを作成する必要があります。つまり、私の入力は次のようになります。
DateTime StartDate = "3/10/2009";
DateTime EndDate = "3/26/2009";
int DayInterval = 3;
で、出力は次のような日付を持つリストとなります。
3/13/2009 3/16/2009 3/19/2009 3/22/2009 3/25/2009
では、一体どうすればこのようなことができるのでしょうか?私は、このような別のカウンターを持つ範囲内のすべての日の間で繰り返し実行するループを使用することを考えました。
int count = 0;
for(int i = 0; i < n; i++)
{
count++;
if(count >= DayInterval)
{
//take action
count = 0;
}
}
でも、もっといい方法がありそうな気がするのですが?
解決方法は?
まあ、いずれにせよループさせる必要がありますね。 私はこのようなメソッドを定義するのが好きです。
public IEnumerable<DateTime> EachDay(DateTime from, DateTime thru)
{
for(var day = from.Date; day.Date <= thru.Date; day = day.AddDays(1))
yield return day;
}
すると、こんな風に使うことができます。
foreach (DateTime day in EachDay(StartDate, EndDate))
// print it or whatever
このようにして、一日おき、三日おき、平日のみ、などをヒットさせることができる。 たとえば、quot;start" の日付から3日おきに返すには、次のように呼び出すだけです。
AddDays(3)
の代わりにループ内で
AddDays(1)
.
関連
-
[解決済み】SmtpException: トランスポート接続からデータを読み取れません:net_io_connectionclosed
-
[解決済み】ソケットのアドレス(プロトコル/ネットワークアドレス/ポート)は、通常1つしか使用できない?
-
[解決済み】Linq 構文 - 複数列の選択
-
[解決済み] 2つのリストを結合する
-
[解決済み] enumを列挙するには
-
[解決済み] Pythonで現在時刻を取得する方法
-
[解決済み] JavaScriptのオブジェクトをループスルーまたは列挙するにはどうすればよいですか?
-
[解決済み] Microsoft JSONの日付はどのようにフォーマットするのですか?
-
[解決済み] DateTime型の誕生日から年齢を計算するにはどうしたらいいですか?
-
[解決済み] オブジェクトをメンバーとして、プレーンなJavaScriptオブジェクトをループさせる方法
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] 保護レベルによりアクセス不能になりました。
-
[解決済み】プロジェクトビルド時のエラー。エディタでスクリプトにコンパイルエラーがあるため、Playerのビルドにエラーが発生する
-
[解決済み】Unity3DでOnTriggerEnterが動作しない件
-
[解決済み】リソースの読み込みに失敗した:ステータス500(内部サーバーエラー)のサーバーの応答)
-
[解決済み】ランダムなブーリアンを生成する最速の方法
-
[解決済み] 2つのリストを結合する
-
[解決済み】aspNetCore 2.2.0 - AspNetCoreModuleV2 エラー
-
[解決済み】インデックスが範囲外でした。コレクションパラメータname:indexのサイズより小さく、非負でなければなりません。
-
[解決済み】名前 'ViewBag' が現在のコンテキストに存在しない - Visual Studio 2015
-
[解決済み] 2つの日付の間にあるすべての日付の配列またはリストを作成する [重複] [重複