1 16 package org.joda.time.chrono.gj; 17 18 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 } 61 | Popular Tags |