C# TimeSpan 简单用法

将字符串转换为 TimeSpan 类型。

string str = "12:34:56";
TimeSpan ts1 = TimeSpan.Parse(str);  // 当字符串格式不正确时,会抛出异常

Console.WriteLine(ts1);
// 输出:12:34:56

string str2 = "1.02:03:04.567";  // 可以包含天数部分
TimeSpan ts2 = TimeSpan.Parse(str2);

Console.WriteLine(ts2);
// 输出:1.02:03:04.5670000

        我们使用 TimeSpan.Parse 方法将字符串转换为 TimeSpan 类型。这个方法要求输入字符串的格式必须为 [-][d.]hh:mm:ss[.fffffff],其中方括号表示可选项。当字符串格式不正确时,会抛出异常。

        除了 Parse 方法,还有 TryParse 方法可以用于将字符串转换为 TimeSpan 类型,它与 Parse 方法的差异在于,如果字符串格式不正确,TryParse 不会抛出异常,而是将转换结果设置为 TimeSpan.Zero,并返回一个布尔值,表示转换是否成功。下面是 TimeSpan.TryParse 的示例:

string str = "12:34:56";
if (TimeSpan.TryParse(str, out TimeSpan ts))
{
    Console.WriteLine(ts);
}
else
{
    Console.WriteLine("字符串格式不正确。");
}

string str2 = "1.02:03:04.567";  // 可以包含天数部分
if (TimeSpan.TryParse(str2, out TimeSpan ts2))
{
    Console.WriteLine(ts2);
}
else
{
    Console.WriteLine("字符串格式不正确。");
}

        在上面的代码中,我们使用 TimeSpan.TryParse 方法将字符串转换为 TimeSpan 类型,并判断转换是否成功。需要注意的是,TryParse 方法的参数 out TimeSpan ts 表示转换后的 TimeSpan 对象,需要定义在方法外部。

timespan比较大小

        使用 TimeSpan 的 CompareTo 方法进行两个时间间隔的比较。该方法将返回一个整数,用于表示两个时间间隔的大小。

TimeSpan 与 0 进行比较的示例:

TimeSpan ts1 = TimeSpan.Parse("00:00:10");
TimeSpan ts2 = TimeSpan.Parse("00:00:20");

bool result1 = (ts1.CompareTo(TimeSpan.Zero) > 0);  // true
bool result2 = (ts2.CompareTo(TimeSpan.Zero) > 0);  // true

Console.WriteLine(result1);
Console.WriteLine(result2);

        使用 TimeSpan.Parse 方法将字符串转换为 TimeSpan 类型;然后,使用 TimeSpan.CompareTo 方法将这个 TimeSpan 对象与 TimeSpan.Zero 进行比较,得到一个整数值,如果这个值大于 0,则表示这个 TimeSpan 对象大于 TimeSpan.Zero,即这个 TimeSpan 对象表示的时间间隔大于 0。最后,将比较的结果赋值给 bool 类型的变量,用于表示原始问题的答案。

        需要注意的是,在使用 CompareTo 方法进行比较时,需要注意比较的方向,因为它是有顺序的,例如 ts1.CompareTo(ts2) 和 ts2.CompareTo(ts1) 的结果是不一样的。此外,也可以直接使用 ><>=<= 等运算符进行比较,不过其底层实现仍然是调用的 CompareTo 方法。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值