Я составляю информационный график моих писем. Это идет довольно хорошо, но все более запутанным, то они должны быть, например, если я хочу, чтобы получить количество электронных писем кто-то отравлены меня в месяц, то я использую это:подкап периода
for (Person p : AL_persons) {
for (int y = firstYear; y <= lastYear; y++) {
for (int m = 1; m <= 12; m++) {
ArrayList<Email> emailThatMonth = new ArrayList<Email>();
for (Email e : p.emails) {
if (e.date.year().get() == y
&& e.date.monthOfYear().get() == m) {
emailThatMonth.add(e);
}
}
if (emailThatMonth.size() > maxEmailsMonth)
maxEmailsMonth = emailThatMonth.size();
}
}
}
Я хочу, чтобы улучшить это поэтому я могу сделать это намного проще, Я думал о хранении первого дня каждого месяца, поэтому я могу использовать его. (не тестировалось код здесь на)
ArrayList<DateTime> monthStarts = new ArrayList<DateTime>();
for (int y = firstYear; y <= lastYear; y++) {
for (int m = 1; m <= 12; m++) {
monthStarts.add(new LocalDate(y+"-"+m+"-01"));
}
}
Тогда, чтобы получить электронную почту я мог бы использовать подкарта:
for(DateTime ld : monthStarts) {
ArrayList<Email> emailThatMonth = emails.submap(ld, ld.plusMonths(1));
}
Я думаю, что это должно работать, однако это вполне определенная работа (не то, что я возражаю что), я просто хотел узнать, что вы, ребята, думаете об этом, чтобы узнать, есть ли у кого-то советы или какие-то другие идеи, чтобы справиться с этим.
примечание, я использую время Joda (и я люблю его)
Итак ... какую информацию вы пытаетесь получить? Количество писем за каждый месяц? Большинство писем, полученных в любой месяц? Похоже, вы в конечном итоге пишете множество переменных, которые никогда не читаются, прежде чем они выйдут из сферы действия. – Thomas
У меня есть люди с массивом, у человека есть массивList со всеми электронными письмами от этого человека. Я хочу получить общее количество писем в месяцах на человека. У меня также есть массив, в котором хранятся все письма от всех лиц, поэтому я хочу получить все электронные письма с месяца (все люди). – clankill3r