1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.joda.time.chrono.gj;
17
18
19
20
21
22 class TestJulianMonthOfYearField extends TestGJMonthOfYearField {
23 public TestJulianMonthOfYearField(TestJulianChronology chrono) {
24 super(chrono);
25 }
26
27 public int get(long millis) {
28 return iChronology.gjFromMillis(millis)[1];
29 }
30
31 public long add(long millis, long value) {
32 int year = iChronology.year().get(millis);
33 int newYear = year + (int)TestGJChronology.div(value, 12);
34 if (year < 0) {
35 if (newYear >= 0) {
36 newYear++;
37 }
38 } else {
39 if (newYear <= 0) {
40 newYear--;
41 }
42 }
43 int newMonth = get(millis) + (int)TestGJChronology.mod(value, 12);
44 if (newMonth > 12) {
45 if (newYear == -1) {
46 newYear = 1;
47 } else {
48 newYear++;
49 }
50 newMonth -= 12;
51 }
52 int newDay = iChronology.dayOfMonth().get(millis);
53 millis = iChronology.getTimeOnlyMillis(millis)
54 + iChronology.millisFromGJ(newYear, newMonth, newDay);
55 while (get(millis) != newMonth) {
56 millis = iChronology.dayOfYear().add(millis, -1);
57 }
58 return millis;
59 }
60 }