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

Unified Diff: lib/core/duration.dart

Issue 10948009: Revert 12494. (Closed) Base URL: http://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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « lib/core/date.dart ('k') | lib/core/exceptions.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: lib/core/duration.dart
===================================================================
--- lib/core/duration.dart (revision 12500)
+++ lib/core/duration.dart (working copy)
@@ -7,30 +7,8 @@
/**
* A [Duration] represents a time span. A duration can be negative.
*/
-class Duration implements Comparable, Hashable {
- static const int MILLISECONDS_PER_SECOND = 1000;
- static const int SECONDS_PER_MINUTE = 60;
- static const int MINUTES_PER_HOUR = 60;
- static const int HOURS_PER_DAY = 24;
-
- static const int MILLISECONDS_PER_MINUTE =
- MILLISECONDS_PER_SECOND * SECONDS_PER_MINUTE;
- static const int MILLISECONDS_PER_HOUR =
- MILLISECONDS_PER_MINUTE * MINUTES_PER_HOUR;
- static const int MILLISECONDS_PER_DAY =
- MILLISECONDS_PER_HOUR * HOURS_PER_DAY;
-
- static const int SECONDS_PER_HOUR = SECONDS_PER_MINUTE * MINUTES_PER_HOUR;
- static const int SECONDS_PER_DAY = SECONDS_PER_HOUR * HOURS_PER_DAY;
-
- static const int MINUTES_PER_DAY = MINUTES_PER_HOUR * HOURS_PER_DAY;
-
+interface Duration extends Comparable default DurationImplementation {
/**
- * This [Duration] in milliseconds.
- */
- final int inMilliseconds;
-
- /**
* The duration is the sum of all individual parts. This means that individual
* parts don't need to be less than the next-bigger unit. For example [hours]
* is allowed to have a value greater than 23.
@@ -38,83 +16,51 @@
* All individual parts are allowed to be negative.
* All arguments are by default 0.
*/
- const Duration({int days: 0,
- int hours: 0,
- int minutes: 0,
- int seconds: 0,
- int milliseconds: 0})
- : inMilliseconds = days * Duration.MILLISECONDS_PER_DAY +
- hours * Duration.MILLISECONDS_PER_HOUR +
- minutes * Duration.MILLISECONDS_PER_MINUTE +
- seconds * Duration.MILLISECONDS_PER_SECOND +
- milliseconds;
+ const Duration({int days, int hours, int minutes, int seconds,
+ int milliseconds});
/**
- * This [Duration] in days. Incomplete days are discarded
+ * Returns this [Duration] in days. Incomplete days are discarded.
*/
- int get inDays {
- return inMilliseconds ~/ Duration.MILLISECONDS_PER_DAY;
- }
+ int get inDays;
/**
- * This [Duration] in hours. Incomplete hours are discarded.
+ * Returns this [Duration] in hours. Incomplete hours are discarded.
* The returned value can be greater than 23.
*/
- int get inHours {
- return inMilliseconds ~/ Duration.MILLISECONDS_PER_HOUR;
- }
+ int get inHours;
/**
- * This [Duration] in minutes. Incomplete minutes are discarded.
+ * Returns this [Duration] in minutes. Incomplete minutes are discarded.
* The returned value can be greater than 59.
*/
- int get inMinutes {
- return inMilliseconds ~/ Duration.MILLISECONDS_PER_MINUTE;
- }
+ int get inMinutes;
/**
- * This [Duration] in seconds. Incomplete seconds are discarded.
+ * Returns this [Duration] in seconds. Incomplete seconds are discarded.
* The returned value can be greater than 59.
*/
- int get inSeconds {
- return inMilliseconds ~/ Duration.MILLISECONDS_PER_SECOND;
- }
+ int get inSeconds;
- bool operator ==(other) {
- if (other is !Duration) return false;
- return inMilliseconds == other.inMilliseconds;
- }
+ /**
+ * Returns this [Duration] in milliseconds.
+ */
+ int get inMilliseconds;
- int hashCode() {
- return inMilliseconds.hashCode();
- }
+ static const int MILLISECONDS_PER_SECOND = 1000;
+ static const int SECONDS_PER_MINUTE = 60;
+ static const int MINUTES_PER_HOUR = 60;
+ static const int HOURS_PER_DAY = 24;
- int compareTo(Duration other) {
- return inMilliseconds.compareTo(other.inMilliseconds);
- }
+ static const int MILLISECONDS_PER_MINUTE =
+ MILLISECONDS_PER_SECOND * SECONDS_PER_MINUTE;
+ static const int MILLISECONDS_PER_HOUR =
+ MILLISECONDS_PER_MINUTE * MINUTES_PER_HOUR;
+ static const int MILLISECONDS_PER_DAY =
+ MILLISECONDS_PER_HOUR * HOURS_PER_DAY;
- String toString() {
- String threeDigits(int n) {
- if (n >= 100) return "$n";
- if (n > 10) return "0$n";
- return "00$n";
- }
- String twoDigits(int n) {
- if (n >= 10) return "$n";
- return "0$n";
- }
+ static const int SECONDS_PER_HOUR = SECONDS_PER_MINUTE * MINUTES_PER_HOUR;
+ static const int SECONDS_PER_DAY = SECONDS_PER_HOUR * HOURS_PER_DAY;
- if (inMilliseconds < 0) {
- Duration duration =
- new Duration(milliseconds: -inMilliseconds);
- return "-$duration";
- }
- String twoDigitMinutes =
- twoDigits(inMinutes.remainder(Duration.MINUTES_PER_HOUR));
- String twoDigitSeconds =
- twoDigits(inSeconds.remainder(Duration.SECONDS_PER_MINUTE));
- String threeDigitMs =
- threeDigits(inMilliseconds.remainder(Duration.MILLISECONDS_PER_SECOND));
- return "$inHours:$twoDigitMinutes:$twoDigitSeconds.$threeDigitMs";
- }
+ static const int MINUTES_PER_DAY = MINUTES_PER_HOUR * HOURS_PER_DAY;
}
« no previous file with comments | « lib/core/date.dart ('k') | lib/core/exceptions.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698