私はこの問題を数回前に偶然見つけました。周りにはいくつかの答えがありますが、それらは非常に遅いです。2つの日付間の営業日数を計算する最速アルゴリズムですか?
def businessDaysBetween(startDate: DateTime, endDate: DateTime): Seq[DateTime] = {
1 to daysBetween(startDate, endDate) map {
startDate.withFieldAdded(DurationFieldType.days(), _)
} diff holidays filter {
_.getDayOfWeek() match {
case DateTimeConstants.SUNDAY | DateTimeConstants.SATURDAY => false
case _ => true
}
}
}
def daysBetween(startDate: DateTime, endDate: DateTime) =
Days.daysBetween(startDate.toDateMidnight(), endDate.toDateMidnight()).getDays()
私の質問は、2つの日付の間の営業日数を計算する方法だけでなく、できるだけ速い解決方法です。実際の日付ではなく、営業日の数だけを知る必要があることに注意してください。
あなたのユースケースに応じて、あらかじめ計算してそれを見てください(私たちは実際に1社で1年中残りました。私たちはLotus Notesを使用していました。 ) –
一定の時間内に何かできることを事前計算してキャッシュするのはなぜですか? –
あなたのユースケースによりますが、それはより速いかもしれません。特に、実装言語の計算が遅い場合 –