| 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')}'; |
| } |
| } |
| ); |
| |
| } |
| |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?