コードに奇妙なバグがあり、立ち往生しています。実際、私はあまり明確ではないレガシーコードを変更し、この問題が発生しました。ここでライブの例を fiddle で見ることができます。
基本的に私はカレンダーを持っており、正しい日数にまたがるように複数日のイベントを拡張する必要があります。1 つのケースを除いて、すべてが機能します。月の最初の日が週の最初の日である場合です。その場合、複数日にまたがるイベントは、最初の 1 週間だけ 1 日短くなります。回避策を使用してこれを解決しました
// There is a bug that happens only when the first day of the
// month is the first day of the week. In that case events that start on the first of the month
// or multy day events that span from the previous month end up being a day too short in the
// first week. So for example an event that lasted the full month was only six days in the first week.
// This workaround works for me, couldn't understand what's wrong.
// if (startDay === 1 && daysFirstWeek === 7) {
// days += 1;
// }
行のコメントを外すとすべてが機能しますが、明らかにこれは解決策ではありません。
この問題については、新しい視点が必要です。おそらく、全体の根底にある概念が間違っているので、最初からやり直すべきですが、解決策が見つからないとイライラします。