Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(178)

Side by Side Diff: lib/coreimpl/date.dart

Issue 10950006: Convert most interfaces in dart:core to abstract classes. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 8 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2012, 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 class DateImplementation implements Date { 5 class DateImplementation implements Date {
6 final int millisecondsSinceEpoch; 6 final int millisecondsSinceEpoch;
7 final bool isUtc; 7 final bool isUtc;
8 8
9 factory DateImplementation.fromString(String formattedString) { 9 factory DateImplementation.fromString(String formattedString) {
10 // Read in (a subset of) ISO 8601. 10 // Read in (a subset of) ISO 8601.
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
55 if (addOneMillisecond) millisecondsSinceEpoch++; 55 if (addOneMillisecond) millisecondsSinceEpoch++;
56 return new Date.fromMillisecondsSinceEpoch(millisecondsSinceEpoch, isUtc); 56 return new Date.fromMillisecondsSinceEpoch(millisecondsSinceEpoch, isUtc);
57 } else { 57 } else {
58 throw new IllegalArgumentException(formattedString); 58 throw new IllegalArgumentException(formattedString);
59 } 59 }
60 } 60 }
61 61
62 static const int _MAX_MILLISECONDS_SINCE_EPOCH = 8640000000000000; 62 static const int _MAX_MILLISECONDS_SINCE_EPOCH = 8640000000000000;
63 63
64 DateImplementation.fromMillisecondsSinceEpoch(this.millisecondsSinceEpoch, 64 DateImplementation.fromMillisecondsSinceEpoch(this.millisecondsSinceEpoch,
65 [this.isUtc = false]) { 65 this.isUtc) {
66 if (millisecondsSinceEpoch.abs() > _MAX_MILLISECONDS_SINCE_EPOCH) { 66 if (millisecondsSinceEpoch.abs() > _MAX_MILLISECONDS_SINCE_EPOCH) {
67 throw new IllegalArgumentException(millisecondsSinceEpoch); 67 throw new IllegalArgumentException(millisecondsSinceEpoch);
68 } 68 }
69 if (isUtc === null) throw new IllegalArgumentException(isUtc); 69 if (isUtc === null) throw new IllegalArgumentException(isUtc);
70 } 70 }
71 71
72 bool operator ==(other) { 72 bool operator ==(other) {
73 if (!(other is Date)) return false; 73 if (!(other is Date)) return false;
74 return (millisecondsSinceEpoch == other.millisecondsSinceEpoch); 74 return (millisecondsSinceEpoch == other.millisecondsSinceEpoch);
75 } 75 }
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after
153 } 153 }
154 154
155 /** Returns a [Duration] with the difference of [this] and [other]. */ 155 /** Returns a [Duration] with the difference of [this] and [other]. */
156 Duration difference(Date other) { 156 Duration difference(Date other) {
157 int ms = millisecondsSinceEpoch; 157 int ms = millisecondsSinceEpoch;
158 int otherMs = other.millisecondsSinceEpoch; 158 int otherMs = other.millisecondsSinceEpoch;
159 return new Duration(milliseconds: ms - otherMs); 159 return new Duration(milliseconds: ms - otherMs);
160 } 160 }
161 161
162 external DateImplementation(int year, 162 external DateImplementation(int year,
163 [int month, 163 [int month = 1,
ahe 2012/09/18 12:30:56 Remove optionality, or add TODO.
Lasse Reichstein Nielsen 2012/09/18 12:39:42 Adding TODO for now. This is an external construct
164 int day, 164 int day = 1,
165 int hour, 165 int hour = 0,
166 int minute, 166 int minute = 0,
167 int second, 167 int second = 0,
168 int millisecond, 168 int millisecond = 0,
169 bool isUtc]); 169 bool isUtc = false]);
170 external DateImplementation.now(); 170 external DateImplementation.now();
171 external static int _brokenDownDateToMillisecondsSinceEpoch( 171 external static int _brokenDownDateToMillisecondsSinceEpoch(
172 int years, int month, int day, int hour, int minute, int second, 172 int years, int month, int day, int hour, int minute, int second,
173 int millisecond, bool isUtc); 173 int millisecond, bool isUtc);
174 external String get timeZoneName; 174 external String get timeZoneName;
175 external Duration get timeZoneOffset; 175 external Duration get timeZoneOffset;
176 external int get year; 176 external int get year;
177 external int get month; 177 external int get month;
178 external int get day; 178 external int get day;
179 external int get hour; 179 external int get hour;
180 external int get minute; 180 external int get minute;
181 external int get second; 181 external int get second;
182 external int get millisecond; 182 external int get millisecond;
183 external int get weekday; 183 external int get weekday;
184 } 184 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698