diff --git a/CapMachine.Wpf/Converts/SecToStrConvert.cs b/CapMachine.Wpf/Converts/SecToStrConvert.cs index 5a392c6..85ae834 100644 --- a/CapMachine.Wpf/Converts/SecToStrConvert.cs +++ b/CapMachine.Wpf/Converts/SecToStrConvert.cs @@ -43,10 +43,22 @@ namespace CapMachine.Wpf.Converts //int second = TotalSec % 60; //return string.Format("{0}:{1}:{2}", hour, minute, second); - ////Console.WriteLine(result); + //////Console.WriteLine(result); - TimeSpan TimeInfo = TimeSpan.FromSeconds(TotalSec); - return TimeInfo.ToString(); + //TimeSpan TimeInfo = TimeSpan.FromSeconds(TotalSec); + //return TimeInfo.ToString(); + + return ConvertSecToTimeStr(TotalSec); + } + + private string ConvertSecToTimeStr(int totalSeconds) + { + int hours = totalSeconds / 3600; + int remainingSeconds = totalSeconds % 3600; + int minutes = remainingSeconds / 60; + int seconds = remainingSeconds % 60; + + return $"{hours}:{minutes:D2}:{seconds:D2}"; } /// @@ -57,16 +69,35 @@ namespace CapMachine.Wpf.Converts { try { - TimeSpan TimeInfo = TimeSpan.Parse(timeString); - return (int)TimeInfo.TotalSeconds; + //TimeSpan TimeInfo = TimeSpan.Parse(timeString); + //return (int)TimeInfo.TotalSeconds; + return ConvertTimeStrToSecs(timeString); } catch (Exception ex) { MessageBox.Show("时间格式输入不正确"); return (int)0; } - - + + + } + + public int ConvertTimeStrToSecs(string timeString) + { + string[] parts = timeString.Split(':'); + if (parts.Length != 3) return 0; + //throw new FormatException("Invalid time format. Use 'hh:mm:ss'"); + + if (!int.TryParse(parts[0], out int hours) || hours < 0) return 0; + //throw new ArgumentException("小時必須為非負整數"); + + if (!int.TryParse(parts[1], out int minutes) || minutes < 0 || minutes >= 60) return 0; + //throw new ArgumentException("分鐘必須為 0-59 的整數"); + + if (!int.TryParse(parts[2], out int seconds) || seconds < 0 || seconds >= 60) return 0; + //throw new ArgumentException("秒必須為 0-59 的整數"); + + return hours * 3600 + minutes * 60 + seconds; } } } diff --git a/CapMachine.Wpf/ViewModels/ProConfigViewModel.cs b/CapMachine.Wpf/ViewModels/ProConfigViewModel.cs index 29b7123..70c5f63 100644 --- a/CapMachine.Wpf/ViewModels/ProConfigViewModel.cs +++ b/CapMachine.Wpf/ViewModels/ProConfigViewModel.cs @@ -15956,8 +15956,12 @@ namespace CapMachine.Wpf.ViewModels { try { - TimeSpan TimeInfo = TimeSpan.FromSeconds(TotalSec); - return TimeInfo.ToString(); + int hours = TotalSec / 3600; + int remainingSeconds = TotalSec % 3600; + int minutes = remainingSeconds / 60; + int seconds = remainingSeconds % 60; + + return $"{hours}:{minutes:D2}:{seconds:D2}"; } catch (Exception ex) {