| OLD | NEW |
| (Empty) |
| 1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file | |
| 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. | |
| 4 | |
| 5 part of app; | |
| 6 | |
| 7 class Utils { | |
| 8 static String formatPercent(num a, num total) { | |
| 9 var percent = 100.0 * (a / total); | |
| 10 return '${percent.toStringAsFixed(2)}%'; | |
| 11 } | |
| 12 | |
| 13 static String zeroPad(int value, int pad) { | |
| 14 String prefix = ""; | |
| 15 while (pad > 1) { | |
| 16 int pow10 = pow(10, pad - 1); | |
| 17 if (value < pow10) { | |
| 18 prefix = prefix + "0"; | |
| 19 } | |
| 20 pad--; | |
| 21 } | |
| 22 return "${prefix}${value}"; | |
| 23 } | |
| 24 | |
| 25 static String formatCommaSeparated(int v) { | |
| 26 const COMMA_EVERY = 1000; | |
| 27 if (v < COMMA_EVERY) { | |
| 28 return v.toString(); | |
| 29 } | |
| 30 var mod = v % COMMA_EVERY; | |
| 31 v ~/= COMMA_EVERY; | |
| 32 var r = '${zeroPad(mod, 3)}'; | |
| 33 while (v > COMMA_EVERY) { | |
| 34 mod = v % COMMA_EVERY; | |
| 35 r = '${zeroPad(mod, 3)},$r'; | |
| 36 v ~/= COMMA_EVERY; | |
| 37 } | |
| 38 if (v != 0) { | |
| 39 r = '$v,$r'; | |
| 40 } | |
| 41 return r; | |
| 42 } | |
| 43 | |
| 44 static String formatTimePrecise(double time) { | |
| 45 if (time == null) { | |
| 46 return "-"; | |
| 47 } | |
| 48 const millisPerHour = 60 * 60 * 1000; | |
| 49 const millisPerMinute = 60 * 1000; | |
| 50 const millisPerSecond = 1000; | |
| 51 | |
| 52 var millis = (time * millisPerSecond).round(); | |
| 53 | |
| 54 var hours = millis ~/ millisPerHour; | |
| 55 millis = millis % millisPerHour; | |
| 56 | |
| 57 var minutes = millis ~/ millisPerMinute; | |
| 58 millis = millis % millisPerMinute; | |
| 59 | |
| 60 var seconds = millis ~/ millisPerSecond; | |
| 61 millis = millis % millisPerSecond; | |
| 62 | |
| 63 if (hours > 0) { | |
| 64 return ("${zeroPad(hours,2)}" | |
| 65 ":${zeroPad(minutes,2)}" | |
| 66 ":${zeroPad(seconds,2)}" | |
| 67 ".${zeroPad(millis,3)}"); | |
| 68 } else { | |
| 69 return ("${zeroPad(minutes,2)}" | |
| 70 ":${zeroPad(seconds,2)}" | |
| 71 ".${zeroPad(millis,3)}"); | |
| 72 } | |
| 73 } | |
| 74 | |
| 75 static String formatSize(int bytes) { | |
| 76 const int digits = 1; | |
| 77 const int bytesPerKB = 1024; | |
| 78 const int bytesPerMB = 1024 * bytesPerKB; | |
| 79 const int bytesPerGB = 1024 * bytesPerMB; | |
| 80 const int bytesPerTB = 1024 * bytesPerGB; | |
| 81 | |
| 82 if (bytes < bytesPerKB) { | |
| 83 return "${bytes}B"; | |
| 84 } else if (bytes < bytesPerMB) { | |
| 85 return "${(bytes / bytesPerKB).toStringAsFixed(digits)}KB"; | |
| 86 } else if (bytes < bytesPerGB) { | |
| 87 return "${(bytes / bytesPerMB).toStringAsFixed(digits)}MB"; | |
| 88 } else if (bytes < bytesPerTB) { | |
| 89 return "${(bytes / bytesPerGB).toStringAsFixed(digits)}GB"; | |
| 90 } else { | |
| 91 return "${(bytes / bytesPerTB).toStringAsFixed(digits)}TB"; | |
| 92 } | |
| 93 } | |
| 94 | |
| 95 static String formatTime(double time) { | |
| 96 if (time == null) { | |
| 97 return "-"; | |
| 98 } | |
| 99 const millisPerHour = 60 * 60 * 1000; | |
| 100 const millisPerMinute = 60 * 1000; | |
| 101 const millisPerSecond = 1000; | |
| 102 | |
| 103 var millis = (time * millisPerSecond).round(); | |
| 104 | |
| 105 var hours = millis ~/ millisPerHour; | |
| 106 millis = millis % millisPerHour; | |
| 107 | |
| 108 var minutes = millis ~/ millisPerMinute; | |
| 109 millis = millis % millisPerMinute; | |
| 110 | |
| 111 var seconds = millis ~/ millisPerSecond; | |
| 112 | |
| 113 StringBuffer out = new StringBuffer(); | |
| 114 if (hours != 0) { | |
| 115 return '${hours}h ${minutes}m ${seconds}s'; | |
| 116 } | |
| 117 if (minutes != 0) { | |
| 118 return '${minutes}m ${seconds}s'; | |
| 119 } | |
| 120 return '${seconds}s'; | |
| 121 } | |
| 122 | |
| 123 static String formatSeconds(double x) { | |
| 124 return x.toStringAsFixed(2); | |
| 125 } | |
| 126 | |
| 127 static bool runningInJavaScript() => identical(1.0, 1); | |
| 128 } | |
| OLD | NEW |