セッションの有効期限の時間とセッションのタイムアウト値のリストがあります。 セッションの開始時間から有効期限のタイムアウトを差し引くことができます。リストに日付が重複したままになる
私は2つの日付が重なっているかどうかを確認する方法を知っている:
public boolean isOverlapped(LocalDateTime start1, LocalDateTime end1,
LocalDateTime start2, LocalDateTime end2) {
return (start1.isBefore(end2) || start1.equals(end2))
&& (start2.isBefore(end1) || start2.equals(end2));
}
が、日付のリストのためにこれを行うにはどのようには考えています。
結果私は、重複した(並行して)セッションの中で最も長いチェーンを持つリストを持っていたいと思います。 ありがとうございました!
「オーバーラッピング」は、日付間の4桁の関係です。したがって、各リスト要素が1つの日付である場合、「重複する日付のみ」のリストを持つことはどういう意味ですか? –
興味のある「重複」の可能な意味をすべて網羅し、入力と期待される出力を示す一連のテストデータを考案する必要があります。私はあなたが結果が欲しいものをまだ明確にしているかどうかはわかりません。 1つの可能な明白な定義は、複数の間隔のメンバーである時間のスパンを識別し、それらのスパンのうちの1つを含むすべての間隔を出力することです。しかし、それはあなたが「重なり合っている」という意味ではないかもしれません。今立つように、この質問は "あなたが求めているものが不明"と閉ざされるかもしれません。 –
あなたのリストはどのように開始日と終了日を保持していますか? – Shahid