format method
格式化日期间隔输出
Implementation
String format() {
final sb = StringBuffer();
if (betweenMs > 0) {
var day = betweenMs ~/ DateUnit.day.millis;
var hour = betweenMs ~/ DateUnit.hour.millis - day * 24;
var minute =
betweenMs ~/ DateUnit.minute.millis - day * 24 * 60 - hour * 60;
final betweenOfSecond = ((day * 24 + hour) * 60 + minute) * 60;
var second = betweenMs ~/ DateUnit.second.millis - betweenOfSecond;
var millisecond = betweenMs - (betweenOfSecond + second) * 1000;
final level = this.level.index;
var levelCount = 0;
if (_isLevelCountValid(levelCount) &&
0 != day &&
level >= Level.day.index) {
sb.writeAll([day, Level.day.name]);
levelCount++;
}
if (_isLevelCountValid(levelCount) &&
0 != hour &&
level >= Level.hour.index) {
sb.writeAll([hour, Level.hour.name]);
levelCount++;
}
if (_isLevelCountValid(levelCount) &&
0 != minute &&
level >= Level.minute.index) {
sb.writeAll([minute, Level.minute.name]);
levelCount++;
}
if (_isLevelCountValid(levelCount) &&
0 != second &&
level >= Level.second.index) {
sb.writeAll([second, Level.second.name]);
levelCount++;
}
if (_isLevelCountValid(levelCount) &&
0 != millisecond &&
level >= Level.millisecond.index) {
sb.writeAll([millisecond, Level.millisecond.name]);
// levelCount++;
}
}
if (sb.isEmpty) {
sb.writeAll([0, level.name]);
}
return sb.toString();
}