作业时长
This commit is contained in:
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user