C# 将分秒转换为小数形式及检验

一、问题或解决方法应用场景。

涉及分秒处理及检验,自己写了一个方法。因为应用的原因。 其他需要可以改写返回类型及个数。

二、直接粘贴代码获取图片 

代码内容。 

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);
            }
        }

三、注意事项,着重注意点。 

简写一下, 需要扩写的,自行研究下就可以了。

持续更新中、、、、、、本人代码新手,能力有限,如有不足之处,欢迎大家一起讨论交流。 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值