OLD | NEW |
1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file |
2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
4 | 4 |
5 // Dart core library. | 5 // Dart core library. |
6 | 6 |
7 /** | 7 /** |
8 * Date is the public interface to a point in time. | 8 * Date is the public interface to a point in time. |
9 * | 9 * |
10 * It can represent time values that are at a distance of at most | 10 * It can represent time values that are at a distance of at most |
(...skipping 22 matching lines...) Expand all Loading... |
33 static const int JUN = 6; | 33 static const int JUN = 6; |
34 static const int JUL = 7; | 34 static const int JUL = 7; |
35 static const int AUG = 8; | 35 static const int AUG = 8; |
36 static const int SEP = 9; | 36 static const int SEP = 9; |
37 static const int OCT = 10; | 37 static const int OCT = 10; |
38 static const int NOV = 11; | 38 static const int NOV = 11; |
39 static const int DEC = 12; | 39 static const int DEC = 12; |
40 | 40 |
41 /** | 41 /** |
42 * Constructs a [Date] instance based on the individual parts. The date is | 42 * Constructs a [Date] instance based on the individual parts. The date is |
43 * in the local time zone if [isUtc] is false. | 43 * in the local time zone. |
44 * | 44 * |
45 * [month] and [day] are one-based. For example | 45 * [month] and [day] are one-based. For example |
46 * [:new Date(1938, 1, 10)] represents the 10th of January 1938. | 46 * [:new Date(1938, 1, 10):] represents the 10th of January 1938. |
47 */ | 47 */ |
48 factory Date(int year, | 48 factory Date(int year, |
49 [int month = 1, | 49 [int month = 1, |
50 int day = 1, | 50 int day = 1, |
51 int hour = 0, | 51 int hour = 0, |
52 int minute = 0, | 52 int minute = 0, |
53 int second = 0, | 53 int second = 0, |
54 int millisecond = 0, | 54 int millisecond = 0]) { |
55 bool isUtc = false]) { | |
56 return new DateImplementation(year, month, day, | 55 return new DateImplementation(year, month, day, |
57 hour, minute, second, | 56 hour, minute, second, |
58 millisecond, isUtc); | 57 millisecond, false); |
| 58 } |
| 59 |
| 60 /** |
| 61 * Constructs a [Date] instance based on the individual parts. The date is |
| 62 * in the UTC time zone. |
| 63 * |
| 64 * [month] and [day] are one-based. For example |
| 65 * [:new Date.utc(1938, 1, 10):] represents the 10th of January 1938 in |
| 66 * Coordinated Universal Time. |
| 67 */ |
| 68 factory Date.utc(int year, |
| 69 [int month = 1, |
| 70 int day = 1, |
| 71 int hour = 0, |
| 72 int minute = 0, |
| 73 int second = 0, |
| 74 int millisecond = 0]) { |
| 75 return new DateImplementation(year, month, day, |
| 76 hour, minute, second, |
| 77 millisecond, true); |
59 } | 78 } |
60 | 79 |
61 /** | 80 /** |
62 * Constructs a new [Date] instance with current date time value in the | 81 * Constructs a new [Date] instance with current date time value in the |
63 * local time zone. | 82 * local time zone. |
64 */ | 83 */ |
65 factory Date.now() => new DateImplementation.now(); | 84 factory Date.now() => new DateImplementation.now(); |
66 | 85 |
67 /** | 86 /** |
68 * Constructs a new [Date] instance based on [formattedString]. | 87 * Constructs a new [Date] instance based on [formattedString]. |
69 */ | 88 */ |
70 factory Date.fromString(String formattedString) | 89 factory Date.fromString(String formattedString) |
71 => new DateImplementation.fromString(formattedString); | 90 => new DateImplementation.fromString(formattedString); |
72 | 91 |
73 /** | 92 /** |
74 * Constructs a new [Date] instance with the given [millisecondsSinceEpoch]. | 93 * Constructs a new [Date] instance with the given [millisecondsSinceEpoch]. |
75 * If [isUtc] is false then the date is in the local time zone. | 94 * If [isUtc] is false then the date is in the local time zone. |
76 * | 95 * |
77 * The constructed [Date] represents | 96 * The constructed [Date] represents |
78 * 1970-01-01T00:00:00Z + [millisecondsSinceEpoch]ms in the given | 97 * 1970-01-01T00:00:00Z + [millisecondsSinceEpoch]ms in the given |
79 * time zone (local or UTC). | 98 * time zone (local or UTC). |
80 */ | 99 */ |
81 // TODO(floitsch): the spec allows default values in interfaces, but our | 100 // TODO(floitsch): the spec allows default values in interfaces, but our |
82 // tools don't yet. Eventually we want to have default values here. | 101 // tools don't yet. Eventually we want to have default values here. |
83 // TODO(lrn): Have two constructors instead of taking an optional bool. | 102 // TODO(lrn): Have two constructors instead of taking an optional bool. |
84 factory Date.fromMillisecondsSinceEpoch(int millisecondsSinceEpoch, | 103 factory Date.fromMillisecondsSinceEpoch(int millisecondsSinceEpoch, |
85 [bool isUtc = false]) { | 104 {bool isUtc: false}) { |
86 return new DateImplementation.fromMillisecondsSinceEpoch( | 105 return new DateImplementation.fromMillisecondsSinceEpoch( |
87 millisecondsSinceEpoch, isUtc); | 106 millisecondsSinceEpoch, isUtc); |
88 } | 107 } |
89 | 108 |
90 /** | 109 /** |
91 * Returns true if [this] occurs at the same time as [other]. The | 110 * Returns true if [this] occurs at the same time as [other]. The |
92 * comparison is independent of whether the time is utc or in the local | 111 * comparison is independent of whether the time is utc or in the local |
93 * time zone. | 112 * time zone. |
94 */ | 113 */ |
95 bool operator ==(Date other); | 114 bool operator ==(Date other); |
(...skipping 17 matching lines...) Expand all Loading... |
113 * Returns true if [this] occurs at the same time or after [other]. The | 132 * Returns true if [this] occurs at the same time or after [other]. The |
114 * comparison is independent of whether the time is utc or in the local | 133 * comparison is independent of whether the time is utc or in the local |
115 * time zone. | 134 * time zone. |
116 */ | 135 */ |
117 bool operator >=(Date other); | 136 bool operator >=(Date other); |
118 | 137 |
119 | 138 |
120 /** | 139 /** |
121 * Returns [this] in the local time zone. Returns itself if it is already in | 140 * Returns [this] in the local time zone. Returns itself if it is already in |
122 * the local time zone. Otherwise, this method is equivalent to | 141 * the local time zone. Otherwise, this method is equivalent to |
123 * [:new Date.fromMillisecondsSinceEpoch(millisecondsSinceEpoch, false):]. | 142 * [:new Date.fromMillisecondsSinceEpoch(millisecondsSinceEpoch, |
| 143 * isUtc: false):]. |
124 */ | 144 */ |
125 Date toLocal(); | 145 Date toLocal(); |
126 | 146 |
127 /** | 147 /** |
128 * Returns [this] in UTC. Returns itself if it is already in UTC. Otherwise, | 148 * Returns [this] in UTC. Returns itself if it is already in UTC. Otherwise, |
129 * this method is equivalent to | 149 * this method is equivalent to |
130 * [:new Date.fromMillisecondsSinceEpoch(millisecondsSinceEpoch, true):]. | 150 * [:new Date.fromMillisecondsSinceEpoch(millisecondsSinceEpoch, |
| 151 * isUtc: true):]. |
131 */ | 152 */ |
132 Date toUtc(); | 153 Date toUtc(); |
133 | 154 |
134 /** | 155 /** |
135 * Returns the abbreviated time-zone name. | 156 * Returns the abbreviated time-zone name. |
136 * | 157 * |
137 * Examples: [:"CET":] or [:"CEST":]. | 158 * Examples: [:"CET":] or [:"CEST":]. |
138 */ | 159 */ |
139 String get timeZoneName; | 160 String get timeZoneName; |
140 | 161 |
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
216 /** | 237 /** |
217 * Returns a new [Date] with the [duration] subtracted from this instance. | 238 * Returns a new [Date] with the [duration] subtracted from this instance. |
218 */ | 239 */ |
219 Date subtract(Duration duration); | 240 Date subtract(Duration duration); |
220 | 241 |
221 /** | 242 /** |
222 * Returns a [Duration] with the difference of [:this:] and [other]. | 243 * Returns a [Duration] with the difference of [:this:] and [other]. |
223 */ | 244 */ |
224 Duration difference(Date other); | 245 Duration difference(Date other); |
225 } | 246 } |
OLD | NEW |