1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.joda.time.chrono.gj;
17
18 import org.joda.time.DateTimeFieldType;
19 import org.joda.time.DurationField;
20
21
22
23
24
25 class TestGJDayOfYearField extends TestGJDateTimeField {
26 public TestGJDayOfYearField(TestGJChronology chrono) {
27 super(DateTimeFieldType.dayOfYear(), TestGJChronology.MILLIS_PER_DAY, chrono);
28 }
29
30 public int get(long millis) {
31 int year = iChronology.gjYearFromMillis(millis);
32 return (int)(iChronology.fixedFromMillis(millis)
33 - iChronology.fixedFromGJ(year, 1, 1)) + 1;
34 }
35
36 public long set(long millis, int value) {
37 return add(millis, (long) value - get(millis));
38 }
39
40 public long add(long millis, long value) {
41 return millis + value * TestGJChronology.MILLIS_PER_DAY;
42 }
43
44 public DurationField getRangeDurationField() {
45 return iChronology.years();
46 }
47
48 public int getMinimumValue() {
49 return 1;
50 }
51
52 public int getMaximumValue() {
53 return 366;
54 }
55
56 public int getMaximumValue(long millis) {
57 return iChronology.year().isLeap(millis) ? 366 : 365;
58 }
59
60 public long roundFloor(long millis) {
61 return iChronology.getDateOnlyMillis(millis);
62 }
63 }