flutter 定时器

Timer? _timer;
var periodicTime="".obs;
initTimer({required int createTime,required int duration}) async {
_timer = Timer.periodic(const Duration(seconds: 1), (timer) async {
DateTime currentTime = DateTime.now();
var now = (currentTime.millisecondsSinceEpoch / 1000).truncate();
int difference1 = (now - createTime).toInt();
int difference2 = (duration - difference1).toInt();
int hours = difference2 ~/ 3600; // 小时数
int minutes = (difference2 % 3600) ~/ 60; // 分钟数
int seconds = difference2.toInt() % 60; // 秒数
if (difference1 >= duration) {
if (!_timer!.isActive) {
_timer?.cancel();
}
_timer?.cancel();
}
if(periodicTime.startsWith("-")){
_timer?.cancel();
}
if(hours>24){
periodicTime.value= '1天${(hours-24).toString().padLeft(
2, '0')}小时${minutes.toString().padLeft(
2, '0')}分${seconds.toString().padLeft(2, '0')}';
}else{
periodicTime.value= '${hours.toString().padLeft(2, '0')}:${minutes.toString().padLeft(
2, '0')}:${seconds.toString().padLeft(2, '0')}';
}
}
);
}
posted @   吾爱吃鱼  阅读(92)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示