作业时长

This commit is contained in:
mmc
2026-04-16 10:43:58 +08:00
parent aec24027db
commit 2aadaa0205

View File

@@ -107,19 +107,35 @@ class _WorkParamsCardState extends State<WorkParamsCard> {
}
// ====================== 核心:根据时间戳计算时长 ======================
// 修复时间解析:适配 20-1-11-31 08:00:00 格式
void _calculateWorkingTime(String timestampStr) {
try {
// 你的时间格式:20-1-11-31 08:00:00
DateTime currentTime = DateFormat("yy-MM-dd HH:mm:ss").parse(timestampStr);
debugPrint('⏱️ [时间戳] 原始字符串: $timestampStr');
if (timestampStr.isEmpty) return;
// 第一次进入,记录开始时间
try {
// 格式:年-月-日-星期 时:分:秒
// 我们只取 年-月-日 时:分:秒 来解析
List<String> parts = timestampStr.split(' ');
if (parts.length != 2) return;
String datePart = parts[0]; // 20-1-11-31
String timePart = parts[1]; // 08:00:00
List<String> dateSegments = datePart.split('-');
if (dateSegments.length < 3) return;
// 只取 年-月-日,丢弃星期
String cleanDate = '${dateSegments[0]}-${dateSegments[1]}-${dateSegments[2]}';
DateTime currentTime = DateFormat("yy-MM-dd HH:mm:ss").parse('$cleanDate $timePart');
// 记录第一次时间
if (_firstTimestamp == null) {
setState(() {
_firstTimestamp = currentTime;
});
}
// 计算相差分钟数
// 计算分钟
final diff = currentTime.difference(_firstTimestamp!);
setState(() {
_totalWorkMinutes = diff.inMinutes;