我想在日期时间值上添加秒(00:00:02)或分钟(00:00:20)(可能存储字符串类型),但是如何添加?例子:
13:30+02:02:02= 15:32:02 ,
13:30+00:00:01= 13:30:01 ,
13:30+00:01:00=13:31:00 or 13:30 (not important)
你能帮我吗?我需要你的酷算法:)再次感谢...
myDateTimeVariable.Add(new TimeSpan(2,2,2));
如果您选择使用时间跨度,请注意天数部分:
TimeSpan t1 = TimeSpan.Parse("23:30");
TimeSpan t2 = TimeSpan.Parse("00:40:00");
TimeSpan t3 = t1.Add(t2);
Console.WriteLine(t3); // 1.00:10:00
带有日期时间:
DateTime d1 = DateTime.Parse("23:30");
DateTime d2 = DateTime.Parse("00:40:00");
DateTime d3 = d1.Add(d2.TimeOfDay);
Console.WriteLine(d3.TimeOfDay); // 00:10:00
从字符串中添加两个日期时间:
var result = DateTime.Parse(firstDate) + DateTime.Parse(secondDate);
将字符串时间添加到日期时间:
var result = existingDateTime.Add(TimeSpan.Parse(stringTime);
按照您的示例添加时间:
var result = TimeSpan.Parse("12:30:22") + TimeSpan.Parse("11:20:22");
最后,你的日期示例(未经测试!):
var result = DateTime.Parse("12:30:22") + DateTime.Parse("11:20:22");
请注意,这是草率的编码,但您明白了。您需要以某种方式验证该字符串实际上是可解析的。
不太确定你想要什么,但是你能不能只使用 C# 的 DateTime 对象的内置函数?
DateTime myDate = DateTime.Now;
myDate = myDate.AddHours(1);
myDate = myDate.AddMinutes(30);
myDate = myDate.AddSeconds(45);
这个问题比较抽象。如前所述,.NET 中有两种类型 -
DateTime
和 TimeSpan
。 DateTime
类型表示特定时间点。这不是一个时间间隔。自宇宙诞生以来,它一直是一个特定的位置。即使将年/月/日部分设置为 0,它仍然代表某个绝对时间点。时间不长。
另一方面,TimeSpan
代表某个区间。 1分钟,2天,等等。没有指定何时,只指定多长时间。因此,如果要减去两个 DateTime 对象,您将得到一个 TimeSpan 对象,该对象指定它们之间的时间间隔。如果将 TimeSpan 添加到 DateTime,则会得到另一个 DateTime。但是你不能将一个 DateTime 添加到另一个 DateTime - 这没有任何意义。
在我看来,你应该一直使用
TimeSpan
,因为你处理的是时间长度,而不是绝对时间点。如果您从源中以 DateTime 形式获取这些长度,那么这实际上是不正确的,您应该以某种方式将它们转换为
TimeSpan
。解析方法是建议的一种方法,但您也可以尝试从中减去零
DateTime
。这可能会更快、更独立于文化。
TimeSpan.Parse。这会将字符串转换为 TimeSpan 对象。这样你就可以做类似的事情
TimeSpan a = TimeSpan.Parse(timeStringA)+TimeSpan.Parse(TimeStringB);
要分割“00:00:20+00:01:00”这样的字符串,请查看
stringA = timeSting.split('+')[0];
stringb = timeSting.split('+')[1];
return string.Format("{0}:{1}:{2}", mytimespan.Hours
+ (mytimespan.Days*24),mytimespan.Minutes,mytimespan.Seconds);
static void Main(string[] args)
{
String timeText = "3/23/2015 12:00:13 AM";
String timeText2 = "3/23/2015 1:45:03 AM";
DateTime time = Convert.ToDateTime(timeText);
string temp = time.ToString("HH:mm:ss");
DateTime time2 = Convert.ToDateTime(timeText2);
string temp2 = time2.ToString("HH:mm:ss");
TimeSpan t1 = TimeSpan.Parse(temp);
TimeSpan t2 = TimeSpan.Parse(temp2);
Console.Out.WriteLine(t1 + t2); // 01:45:16
Console.ReadLine();
}
添加小时和分钟,即使小时超过 24 或从时间列表(即小时和分钟)中计算总和并在响应中获取小时和分钟。
List<string> time = new List<string>();
time.Add("19.55");
time.Add("38.39");
TimeSpan ts = new TimeSpan();
foreach (var item in time)
ts = ts.Add(new TimeSpan(Convert.ToInt32(item.Split('.')[0]), Convert.ToInt32(item.Split('.')[1]), 0));
Console.WriteLine(string.Format("{0}.{1}", (int)ts.TotalHours, (int)ts.Minutes));