私はこれらの日付が毎日か毎月であるかどうかを知るために、DateオブジェクトのTreeSetが与えられた場合、何が最良の方法であるか疑問に思っています。毎日のセットには週末や祝日の日付は含まれないことに注意してください。毎月の日付のセットには月末の日付が入ります。日付のセットは数年にわたります。日付のコレクションが毎月または毎日であるかどうかを判断する最善の方法は何ですか?
私が現在考えることができる唯一の方法は、セットから最初の12の日付を取り出し、各日付の月を検査することです。月が連続して2回以上見つかった場合、これは日々の日の集合である可能性が高い。そうでなければ、それは毎月の日付のセットであると仮定することができます。
これはうまくいくはずですが(私はそれが欠けてしまうようなエッジケースは考えられません)、より洗練されたソリューションがあるのだろうかと思っていました。私は月と年に基づいてコンパレータを使用するデータ構造(ツリー?)のいくつかの並べ替えを想像するでしょう。次に、このコレクションのサブツリーに複数のノードが含まれていた場合、それらを日々の日付とみなすことができます。この方法で余分なコードが妥当かどうか、あるいはより良い解決策があるかどうかはわかりません。あなたが私に与えることができるお手伝いをありがとう。
作成時にあなたを識別できない原因は何ですか? – Viruzzo
これは既存の機能の更新版であり、このためにコードの多くを変更するチャンスが実際にはありません。また、当初の日付はプログラムの外部のソースからのものです。 – Paul