Skip to content

Commit 7327d9c

Browse files
committed
Changed calendar to integrate usage of add
Fixed #3884
1 parent ed8b2de commit 7327d9c

File tree

1 file changed

+12
-21
lines changed

1 file changed

+12
-21
lines changed

CodenameOne/src/com/codename1/ui/Calendar.java

+12-21
Original file line numberDiff line numberDiff line change
@@ -80,10 +80,6 @@ public class Calendar extends Container implements ActionSource {
8080
private static final String[] MONTHS = new String[]{"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"};
8181
private static final String[] DAYS = {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"};
8282
private static final String[] LABELS = {"Su", "M", "Tu", "W", "Th", "F", "Sa"};
83-
static final long MINUTE = 1000 * 60;
84-
static final long HOUR = MINUTE * 60;
85-
static final long DAY = HOUR * 24;
86-
static final long WEEK = DAY * 7;
8783
private EventDispatcher dispatcher = new EventDispatcher();
8884
private EventDispatcher dataChangedListeners = new EventDispatcher();
8985
private EventDispatcher monthChangedListeners = new EventDispatcher();
@@ -1047,19 +1043,15 @@ private void setCurrentDay(long day, boolean force) {
10471043
cal.set(java.util.Calendar.DAY_OF_MONTH, 1);
10481044
long startDate = cal.getTime().getTime();
10491045
int dow = cal.get(java.util.Calendar.DAY_OF_WEEK);
1050-
cal.setTime(new Date(cal.getTime().getTime() - DAY));
1051-
cal.set(java.util.Calendar.HOUR, 1);
1052-
cal.set(java.util.Calendar.HOUR_OF_DAY, 1);
1053-
cal.set(java.util.Calendar.MINUTE, 0);
1054-
cal.set(java.util.Calendar.SECOND, 0);
1055-
cal.set(java.util.Calendar.MILLISECOND, 0);
1046+
cal.setTime(new Date(cal.getTime().getTime()));
1047+
cal.add(java.util.Calendar.DAY_OF_YEAR, -1);
10561048
int lastDay = cal.get(java.util.Calendar.DAY_OF_MONTH);
10571049
int i = 0;
10581050
if (dow > java.util.Calendar.SUNDAY) {
10591051
//last day of previous month
10601052

10611053
while (dow > java.util.Calendar.SUNDAY) {
1062-
cal.setTime(new Date(cal.getTime().getTime() - DAY));
1054+
cal.add(java.util.Calendar.DAY_OF_YEAR, -1);
10631055
dow = cal.get(java.util.Calendar.DAY_OF_WEEK);
10641056
}
10651057
int previousMonthSunday = cal.get(java.util.Calendar.DAY_OF_MONTH);
@@ -1071,8 +1063,9 @@ private void setCurrentDay(long day, boolean force) {
10711063
}
10721064
//last day of current month
10731065
cal.set(java.util.Calendar.MONTH, (month + 1) % 12);
1074-
cal.set(java.util.Calendar.DAY_OF_MONTH, 1);
1075-
cal.setTime(new Date(cal.getTime().getTime() - DAY));
1066+
while(cal.get(java.util.Calendar.MONTH) != month) {
1067+
cal.add(java.util.Calendar.DAY_OF_YEAR, -1);
1068+
}
10761069

10771070
lastDay = cal.get(java.util.Calendar.DAY_OF_MONTH);
10781071

@@ -1099,7 +1092,9 @@ private void setCurrentDay(long day, boolean force) {
10991092
}
11001093
}
11011094
updateButtonDayDate(components[j], yearNew, month, j - i + 1);
1102-
startDate += DAY;
1095+
cal.setTime(new Date(startDate));
1096+
cal.add(java.util.Calendar.DAY_OF_YEAR, 1);
1097+
startDate = cal.getTime().getTime();
11031098
}
11041099
int d = 1;
11051100
for (; j < components.length; j++) {
@@ -1156,16 +1151,12 @@ private void setMonth(int year, int month) {
11561151
cal.set(java.util.Calendar.DAY_OF_MONTH, 1);
11571152
cal.set(java.util.Calendar.YEAR, year);
11581153

1159-
Date date = cal.getTime();
1160-
long d = date.getTime();
1161-
11621154
// if this is past the last day of the month (e.g. going from January 31st
1163-
// to Febuary) we need to decrement the day until the month is correct
1155+
// to February) we need to decrement the day until the month is correct
11641156
while (cal.get(java.util.Calendar.MONTH) != month) {
1165-
d -= DAY;
1166-
cal.setTime(new Date(d));
1157+
cal.add(java.util.Calendar.DAY_OF_YEAR, -1);
11671158
}
1168-
setCurrentDay(d);
1159+
setCurrentDay(cal.getTime().getTime());
11691160
}
11701161

11711162
public void decrementMonth() {

0 commit comments

Comments
 (0)