前提・実現したいこと
https://blog.beachside.dev/entry/2016/01/03/203000
上記リンクに書いてあることで解決はできるのですがどうしても気になることがあるので質問させてください。
該当のソースコード
c#
1static DateTime RoundUp(DateTime input, TimeSpan interval) 2 => new DateTime(((input.Ticks + interval.Ticks - 1) / interval.Ticks) * interval.Ticks, input.Kind);
試したこと
見る限りはinterval
に例えばTimeSpan.FromHours(1)
を与えれば、一度割ることで小数に分以下の単位の値が丸められてもう一度同じ値で掛ければ切り上げ、切り下げの処理を実現できるね という感じなのはわかるのですが
現在のTicksからインターバルのTicksから1引いた数値を割って、それをインターバルのTicksで掛け算すればサクッとできちゃいます(説明が雑ですいません...)。
と書かれている部分で、1を引く意味がいまいちピンとこず困っています。
09:00:00のようなちょうどの時間に対応するため、1引いてます(説明が雑ですいませ...)。
とか
インターバルのTicksからは1を引かず、割り算した結果から1ひいちゃえばサクサクッとできちゃいます(説.....)。
とか説明(?)はしてくれているのですがさっぱりひらめきません
宜しくお願い致します。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
- Visual Studio 2017
- Windows 10 64bit
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。