KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > joda > time > chrono > gj > TestJulianMonthOfYearField


1 /*
2  * Copyright 2001-2005 Stephen Colebourne
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */

16 package org.joda.time.chrono.gj;
17
18 /**
19  *
20  * @author Brian S O'Neill
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 }
61
Popular Tags