From 217c9d7e0f81c14677a634012f3374b12a1a9f6a Mon Sep 17 00:00:00 2001 From: lxm <1274844347@qq.com> Date: Tue, 9 Dec 2025 15:00:08 +0800 Subject: [PATCH] =?UTF-8?q?refactor(=E6=97=B6=E9=97=B4=E6=A0=BC=E5=BC=8F?= =?UTF-8?q?=E5=8C=96):=20=E4=BD=BF=E7=94=A8Duration=E9=87=8D=E6=9E=84?= =?UTF-8?q?=E6=97=B6=E9=97=B4=E6=A0=BC=E5=BC=8F=E5=8C=96=E6=96=B9=E6=B3=95?= =?UTF-8?q?=E5=B9=B6=E7=A1=AE=E4=BF=9D=E7=A7=92=E6=95=B0=E9=9D=9E=E8=B4=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 修改了两个视图中的_formatHms方法,使用Duration类进行时间计算,同时添加了对负数的处理,确保时间显示始终有效 --- lib/modules/meeting/views/meeting_home_view.dart | 8 +++++--- .../middleware/views/translation_middleware_view.dart | 8 +++++--- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/lib/modules/meeting/views/meeting_home_view.dart b/lib/modules/meeting/views/meeting_home_view.dart index bf9cf58e4..36c5d610e 100644 --- a/lib/modules/meeting/views/meeting_home_view.dart +++ b/lib/modules/meeting/views/meeting_home_view.dart @@ -513,9 +513,11 @@ class _MeetingHomeViewState extends State } String _formatHms(int seconds) { - int h = seconds ~/ 3600; - int m = (seconds % 3600) ~/ 60; - int s = seconds % 60; + final sec = seconds < 0 ? 0 : seconds; // 确保秒数非负 + final d = Duration(seconds: sec); + final h = d.inHours; + final m = d.inMinutes.remainder(60); + final s = d.inSeconds.remainder(60); String twoDigits(int n) => n.toString().padLeft(2, '0'); return '${twoDigits(h)}:${twoDigits(m)}:${twoDigits(s)}'; } diff --git a/lib/modules/translation/middleware/views/translation_middleware_view.dart b/lib/modules/translation/middleware/views/translation_middleware_view.dart index 678efb2d5..9e1de5067 100644 --- a/lib/modules/translation/middleware/views/translation_middleware_view.dart +++ b/lib/modules/translation/middleware/views/translation_middleware_view.dart @@ -212,9 +212,11 @@ class TranslationMiddlewareView } String _formatHms(int seconds) { - int h = seconds ~/ 3600; - int m = (seconds % 3600) ~/ 60; - int s = seconds % 60; + final sec = seconds < 0 ? 0 : seconds; // 确保秒数非负 + final d = Duration(seconds: sec); + final h = d.inHours; + final m = d.inMinutes.remainder(60); + final s = d.inSeconds.remainder(60); String twoDigits(int n) => n.toString().padLeft(2, '0'); return '${twoDigits(h)}:${twoDigits(m)}:${twoDigits(s)}'; }