forked from AY1920S1-CS2103T-T09-4/main
-
Notifications
You must be signed in to change notification settings - Fork 1
/
DateUtil.java
54 lines (46 loc) · 2 KB
/
DateUtil.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
package seedu.address.statistic;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;
import seedu.address.model.order.Order;
/**
* Utility class to help with extracting date value for use in statistic calculations
*/
public class DateUtil {
public static int extractMonth(Order order) {
return order.getSchedule().get().getCalendar().get(Calendar.MONTH);
}
public static int extractYear(Order order) {
return order.getSchedule().get().getCalendar().get(Calendar.YEAR);
}
public static List<Calendar> getListOfYearMonth(StatsPayload statsPayload) {
List<Calendar> listOfYearMonth = new ArrayList<>();
Calendar startDate = statsPayload.getStartingDate();
int startingMonth = startDate.get(Calendar.MONTH);
int startingYear = startDate.get(Calendar.YEAR);
int startingDay = startDate.get(Calendar.DAY_OF_MONTH);
Calendar endDate = statsPayload.getEndingDate();
int endingMonth = endDate.get(Calendar.MONTH);
int endingYear = endDate.get(Calendar.YEAR);
int endingDay = endDate.get(Calendar.DAY_OF_MONTH);
Calendar startDateCloned = new Calendar.Builder()
.setDate(startingYear, startingMonth, startingDay)
.build();
Calendar endDateCloned = new Calendar.Builder()
.setDate(endingYear, endingMonth, endingDay)
.build();
while (startDateCloned.before(endDateCloned)) {
if (startDateCloned.get(Calendar.MONTH) == endDateCloned.get(Calendar.MONTH)
&& startDateCloned.get(Calendar.YEAR) == endDateCloned.get(Calendar.YEAR)) {
//same month same year i dont add
break;
} else {
Calendar temp = (Calendar) startDateCloned.clone();
listOfYearMonth.add(temp);
startDateCloned.add(Calendar.MONTH, 1);
}
}
listOfYearMonth.add(endDate);
return listOfYearMonth;
}
}