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.second", "DurationUnit.s", SI_BASE);
63 SECOND = SI;
64 ATTOSECOND = new DurationUnit("DurationUnit.attosecond", "DurationUnit.as", SI_BASE, SECOND, 1E-18, true);
65 FEMTOSECOND = new DurationUnit("DurationUnit.femtosecond", "DurationUnit.fs", SI_BASE, SECOND, 1E-15, true);
66 PICOSECOND = new DurationUnit("DurationUnit.picosecond", "DurationUnit.ps", SI_BASE, SECOND, 1E-12, true);
67 NANOSECOND = new DurationUnit("DurationUnit.nanosecond", "DurationUnit.ns", SI_BASE, SECOND, 1E-9, true);
68 MICROSECOND = new DurationUnit("DurationUnit.microsecond", "DurationUnit.mus", SI_BASE, SECOND, 1E-6, true);
69 MILLISECOND = new DurationUnit("DurationUnit.millisecond", "DurationUnit.ms", SI_BASE, SECOND, 1E-3, true);
70 MINUTE = new DurationUnit("DurationUnit.minute", "DurationUnit.m", SI_ACCEPTED, SECOND, 60.0, true);
71 HOUR = new DurationUnit("DurationUnit.hour", "DurationUnit.h", SI_ACCEPTED, MINUTE, 60.0, true);
72 DAY = new DurationUnit("DurationUnit.day", "DurationUnit.d", SI_ACCEPTED, HOUR, 24.0, true);
73 WEEK = new DurationUnit("DurationUnit.week", "DurationUnit.w", OTHER, DAY, 7.0, true);
74 }
75
76
77
78
79
80
81
82 private DurationUnit(final String nameKey, final String abbreviationKey, final UnitSystem unitSystem)
83 {
84 super(nameKey, abbreviationKey, unitSystem, true);
85 }
86
87
88
89
90
91
92
93
94
95
96
97 private DurationUnit(final String nameOrNameKey, final String abbreviationOrAbbreviationKey, final UnitSystem unitSystem,
98 final DurationUnit referenceUnit, final double scaleFactorToReferenceUnit, final boolean standardUnit)
99 {
100 super(nameOrNameKey, abbreviationOrAbbreviationKey, unitSystem, referenceUnit, scaleFactorToReferenceUnit,
101 standardUnit);
102 }
103
104
105
106
107
108
109
110
111
112 public DurationUnit(final String name, final String abbreviation, final UnitSystem unitSystem,
113 final DurationUnit referenceUnit, final double scaleFactorToReferenceUnit)
114 {
115 this(name, abbreviation, unitSystem, referenceUnit, scaleFactorToReferenceUnit, false);
116 }
117
118
119 @Override
120 public final DurationUnit getStandardUnit()
121 {
122 return SECOND;
123 }
124
125
126 @Override
127 public final String getSICoefficientsString()
128 {
129 return "s";
130 }
131
132 }