1 package org.djunits.unit;
2
3 import static org.djunits.unit.unitsystem.UnitSystem.OTHER;
4 import static org.djunits.unit.unitsystem.UnitSystem.SI_ACCEPTED;
5 import static org.djunits.unit.unitsystem.UnitSystem.SI_BASE;
6
7 import org.djunits.unit.unitsystem.UnitSystem;
8
9
10
11
12
13
14
15
16
17
18
19 public class DurationUnit extends LinearUnit<DurationUnit>
20 {
21
22 private static final long serialVersionUID = 20140607L;
23
24
25 public static final DurationUnit SI;
26
27
28 public static final DurationUnit SECOND;
29
30
31 public static final DurationUnit ATTOSECOND;
32
33
34 public static final DurationUnit FEMTOSECOND;
35
36
37 public static final DurationUnit PICOSECOND;
38
39
40 public static final DurationUnit NANOSECOND;
41
42
43 public static final DurationUnit MICROSECOND;
44
45
46 public static final DurationUnit MILLISECOND;
47
48
49 public static final DurationUnit MINUTE;
50
51
52 public static final DurationUnit HOUR;
53
54
55 public static final DurationUnit DAY;
56
57
58 public static final DurationUnit WEEK;
59
60 static
61 {
62 SI = new DurationUnit("DurationUnit.s", SI_BASE);
63 SECOND = SI;
64 ATTOSECOND = new DurationUnit("DurationUnit.as", SI_BASE, SECOND, 1E-18);
65 FEMTOSECOND = new DurationUnit("DurationUnit.fs", SI_BASE, SECOND, 1E-15);
66 PICOSECOND = new DurationUnit("DurationUnit.ps", SI_BASE, SECOND, 1E-12);
67 NANOSECOND = new DurationUnit("DurationUnit.ns", SI_BASE, SECOND, 1E-9);
68 MICROSECOND = new DurationUnit("DurationUnit.mus", SI_BASE, SECOND, 1E-6);
69 MILLISECOND = new DurationUnit("DurationUnit.ms", SI_BASE, SECOND, 1E-3);
70 MINUTE = new DurationUnit("DurationUnit.m", SI_ACCEPTED, SECOND, 60.0);
71 HOUR = new DurationUnit("DurationUnit.h", SI_ACCEPTED, MINUTE, 60.0);
72 DAY = new DurationUnit("DurationUnit.d", SI_ACCEPTED, HOUR, 24.0);
73 WEEK = new DurationUnit("DurationUnit.w", OTHER, DAY, 7.0);
74 }
75
76
77
78
79
80
81 private DurationUnit(final String abbreviationKey, final UnitSystem unitSystem)
82 {
83 super(abbreviationKey, unitSystem);
84 }
85
86
87
88
89
90
91
92
93
94 private DurationUnit(final String abbreviationKey, final UnitSystem unitSystem, final DurationUnit referenceUnit,
95 final double scaleFactorToReferenceUnit)
96 {
97 super(abbreviationKey, unitSystem, referenceUnit, scaleFactorToReferenceUnit);
98 }
99
100
101
102
103
104
105
106
107
108
109 public DurationUnit(final String name, final String abbreviation, final UnitSystem unitSystem,
110 final DurationUnit referenceUnit, final double scaleFactorToReferenceUnit)
111 {
112 super(name, abbreviation, unitSystem, referenceUnit, scaleFactorToReferenceUnit);
113 }
114
115
116 @Override
117 public final DurationUnit getStandardUnit()
118 {
119 return SECOND;
120 }
121
122
123 @Override
124 public final String getSICoefficientsString()
125 {
126 return "s";
127 }
128
129 }