在 C# 中使用 addHours() 将持续时间添加到日期
Add time duration to date using addHours() in c#
我想将持续时间添加到我的日期时间变量。我正在从 csv 文件中读取持续时间。持续时间的格式为 0:29:40 或 1:29:40。当我将它添加到 datetime 变量时,它给出了格式不正确的异常。如何使用这种格式添加持续时间。以前我的持续时间是一个简单的整数,比如“6”或“7”,但现在格式是这样的“0:29:40”我不知道如何更改我的代码以适应这种格式。
以前我是这样做的
double hours = Convert.ToDouble(row.Cells[2].Value.ToString());
DateTime newdate = finaldate.AddHours(hours);
row.Cells[2].Value.ToString()
从 csv 中读取值
感谢任何帮助,谢谢
您不需要解析为双精度数。解析为 TimeSpan
。类似于:
var source = "0:29:40";
var ts = TimeSpan.Parse(source);
现在ts
是你的时间跨度。 TimeSpan
的好处是你可以将它添加到 DateTime
:
DateTime newdate = finaldate + ts;
您将需要使用 TimeSpan.Parse()
or TimeSpan.ParseExact()
方法正确解析您的字符串,然后简单地将 TimeSpan
结果添加到您现有的日期:
var time = TimeSpan.Parse(row.Cells[2].Value.ToString());
DateTime newDate = finalDate.Add(time);
如果您需要明确指定每个时间值代表什么,那么 TimeSpan.ParseExact()
方法将允许您提供格式化字符串来指定:
// This will assume that 1:29:40 is hours, minutes, and seconds
var time = TimeSpan.ParseExact(row.Cells[2].Value.ToString(), @"h\:m\:s", null);
我想将持续时间添加到我的日期时间变量。我正在从 csv 文件中读取持续时间。持续时间的格式为 0:29:40 或 1:29:40。当我将它添加到 datetime 变量时,它给出了格式不正确的异常。如何使用这种格式添加持续时间。以前我的持续时间是一个简单的整数,比如“6”或“7”,但现在格式是这样的“0:29:40”我不知道如何更改我的代码以适应这种格式。
以前我是这样做的
double hours = Convert.ToDouble(row.Cells[2].Value.ToString());
DateTime newdate = finaldate.AddHours(hours);
row.Cells[2].Value.ToString()
从 csv 中读取值
感谢任何帮助,谢谢
您不需要解析为双精度数。解析为 TimeSpan
。类似于:
var source = "0:29:40";
var ts = TimeSpan.Parse(source);
现在ts
是你的时间跨度。 TimeSpan
的好处是你可以将它添加到 DateTime
:
DateTime newdate = finaldate + ts;
您将需要使用 TimeSpan.Parse()
or TimeSpan.ParseExact()
方法正确解析您的字符串,然后简单地将 TimeSpan
结果添加到您现有的日期:
var time = TimeSpan.Parse(row.Cells[2].Value.ToString());
DateTime newDate = finalDate.Add(time);
如果您需要明确指定每个时间值代表什么,那么 TimeSpan.ParseExact()
方法将允许您提供格式化字符串来指定:
// This will assume that 1:29:40 is hours, minutes, and seconds
var time = TimeSpan.ParseExact(row.Cells[2].Value.ToString(), @"h\:m\:s", null);