Мне интересно, какой лучший способ, учитывая объекты TreeSet of Date, указать, являются ли эти даты ежедневными или месячными. Обратите внимание, что в наборе ежедневных дат не будут указаны даты для выходных или праздничных дней. Набор ежемесячных дат будет иметь даты окончания месяца. Набор дат будет охватывать несколько лет.Каков наилучший способ узнать, является ли коллекция дат ежемесячной или ежедневной?
Единственный способ, о котором я могу сейчас думать, это взять первые 12 дат из набора и проверить месяц каждой даты. Если месяц встречается более одного раза подряд, то это, скорее всего, будет набор ежедневных дат. Если нет, то можно предположить, что это набор месячных дат.
Хотя кажется, что он должен работать (я не могу думать о каких-либо крайних случаях, которые он пропустил) Мне было интересно, было ли более элегантное решение? Я бы предположил какую-то структуру данных (дерево?), Которая использует компаратор на основе месяца и года. Тогда, если поддерево этого набора содержало более одного узла, я мог предположить, что они были ежедневными датами. Я не уверен, обеспечит ли этот способ дополнительный код или будет доступно лучшее решение. Спасибо за любую помощь, которую вы можете мне дать.
Что мешает вам идентифицировать их, когда они созданы? – Viruzzo
Это обновление существующей функциональности, поэтому на самом деле нет возможности модифицировать большую часть кода. Кроме того, даты первоначально исходят от источника, находящегося за пределами нашей программы. – Paul