一、问题或解决方法应用场景。
涉及分秒处理及检验,自己写了一个方法。因为应用的原因。 其他需要可以改写返回类型及个数。
二、直接粘贴代码获取图片
代码内容。
private async Task<Tuple<decimal, string>> ConvertTimeToDouble(string timeString) { try { string errorMessage = ""; decimal totalTime = -1; if (string.IsNullOrEmpty(timeString)) { return Tuple.Create(totalTime, "无效的时间格式,必须包含一个分隔符(')和一个秒隔符(\"),正确格式:1'23\""); } if (!timeString.Contains("\"") || !timeString.Contains("'")) { if (!decimal.TryParse(timeString, out _)) { return Tuple.Create(totalTime, "无效的时间格式,必须包含一个分隔符(')和一个秒隔符(\"),正确格式:1'23\""); } } // 分隔字符串,得到分钟和秒 string[] parts = timeString.Split(new char[] { '\'', '\"' }); if (parts.Length != 3) { return Tuple.Create(totalTime, "无效的时间格式,必须只包含一个分隔符(')和一个秒隔符(\"),正确格式:1'23\""); } int minutes = 0; int seconds = 0; if (!int.TryParse(parts[0], out minutes) || !int.TryParse(parts[1], out seconds)) { return Tuple.Create(totalTime, "无效的时间格式,分钟和秒必须是数字,且为整数,正确格式:1'23\""); } // 验证分钟和秒的范围,根据需要可以合并写。 if (minutes <= 0 || minutes > 59) { return Tuple.Create(totalTime, "无效的时间格式,分钟的值无效, 应为(0,59】之间的数字,正确格式:1'23\""); } if (seconds < 0 || seconds > 59) { return Tuple.Create(totalTime, "无效的时间格式,秒的值无效, 应为【0,59】之间的数字,正确格式:1'23\""); } // 将分钟和秒转换表示 decimal.TryParse((minutes + seconds / 100.0).ToString(), out totalTime); return Tuple.Create(totalTime, errorMessage); } catch (Exception ex) { throw new FormatException("无效的时间格式:" + ex.Message); } }
三、注意事项,着重注意点。
简写一下, 需要扩写的,自行研究下就可以了。
持续更新中、、、、、、本人代码新手,能力有限,如有不足之处,欢迎大家一起讨论交流。