You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

28 lines
737 B

2 years ago
import 'dart:async';
import 'dart:io';
class TickTool {
DateTime? _start;
DateTime? _end;
TickTool();
Timer? timer;
static const List<String> _boxTick = ['', '', '', ''];
void start() {
_start = DateTime.now();
timer = Timer.periodic(Duration(milliseconds: 80), (timer) {
var temp = timer.tick;
getLog(extra: _boxTick[temp % 4]);
});
}
void end() {
_end = DateTime.now();
timer?.cancel();
}
Duration get duration => _end!.difference(_start!);
Duration get spend => DateTime.now().difference(_start!);
void getLog({String extra = ''}) => stdout.write(
'\r${spend.inSeconds}.${(spend.inMilliseconds / 1000.0).toStringAsFixed(2).split('.')[1]}s spend $extra');
}