You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter从列表提取秒数并转换为时分秒格式的语法问题

问题解决:将秒数转换为小时、分钟、秒

你代码里的错误很明确:在Dart的数值计算逻辑中误用了字符串插值的$符号——这个符号仅在字符串模板场景下才需要使用,直接访问变量即可。另外要注意,Dart中实现整数除法必须用~/运算符,否则会返回浮点数,无法直接赋值给int类型变量。

修正后的完整代码

@override
Widget build(BuildContext context) {
  var course = ModalRoute.of(context)!.settings.arguments as Map<String,dynamic>;
  
  // 先取出总秒数并确保类型为int
  int totalSeconds = course['temps'] as int;
  // 计算小时数:总秒数除以3600(1小时的秒数)
  int hours = totalSeconds ~/ 3600;
  // 计算扣除小时后剩余的秒数
  int remainingAfterHours = totalSeconds % 3600;
  // 从剩余秒数中计算分钟数
  int minutes = remainingAfterHours ~/ 60;
  // 最后剩下的就是秒数
  int seconds = remainingAfterHours % 60;
  
  // 后续可直接使用hours、minutes、seconds三个变量
  return Scaffold(
    // 你的UI渲染代码
  );
}

代码逻辑说明

  • 通过as int做类型强转,避免动态类型带来的潜在问题
  • 使用~/完成整数除法,确保结果为整数
  • 用%取余运算替代减法,逻辑更简洁直观,也减少出错概率

内容的提问来源于stack exchange,提问作者Kach

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 00:12:05