|
■No65759 (mark225 さん) に返信 > 当日から毎月、第2金曜日までの日数を取得したいのですが簡単な方法は無いのでしょうか。 ありません。
なので、自分で計算します。
> 年と月は関係なく、例えば当日が第2金曜日であれば翌月の第2金曜日になりますので30などの数字が返ればOKです。
まず、当日を求めます。今日なら、DateTime.Today ですね。どういう風に当日を求めるかは、記載がないので省きます。 次に、当月1日を求めます。当日が DateTime thatDay; なら var month1stDay = thatDay.AddDay( 1- thatDay.Day ); で求まります。 第1金曜日の日付を求めます。
どうやって求めればいいかはこのプログラムの根幹なので書きません。 わからなかったら、DateTime 構造体のプロパティに何があるかを調査し、 カレンダー(実際の紙のカレンダーがいいでしょう。銀行とかでもらえる一年分のやつでいいです)と にらめっこしながら何を使えばいいかを考えてみるとよいでしょう。
第1金曜日が求まれば、あとは、その一週間後が第2金曜日なので日付をずらします。
これで、とりあえず当日と同じ月の第2金曜日が求まります(month2ndFridayとします)。
当日が第二金曜日なら次の第2金曜日なので、 month2ndFriday < thatDay になる場合は、第2金曜日を翌月の第2金曜日で計算しなおします。
翌月1日は、month1stDay.AddMonths(1); で求まります。
month2ndFriday が求まったので、 TimeSpan span = month2ndFriday-thatDay; とすれば、次の第2金曜日までのずれが求まります。
|