Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将分钟添加到当前指定时间_C#_Time_Add - Fatal编程技术网

C# 将分钟添加到当前指定时间

C# 将分钟添加到当前指定时间,c#,time,add,C#,Time,Add,我想在指定时间的基础上增加5分钟,下面是我的代码 string startTime = "1:00 AM"; string endTime = "0:05 AM"; TimeSpan duration = DateTime.Parse(endTime).Add(DateTime.Parse(startTime)); 我不断出错我怎么能在凌晨1:00前5分钟变成凌晨1:05?您正在传递整个DateTime对象,在解析endTime字符串后,您只需要传递Minute属性,然后对startTime

我想在指定时间的基础上增加5分钟,下面是我的代码

string startTime = "1:00 AM";
string endTime = "0:05 AM";

TimeSpan duration = DateTime.Parse(endTime).Add(DateTime.Parse(startTime));

我不断出错我怎么能在凌晨1:00前5分钟变成凌晨1:05?

您正在传递整个
DateTime
对象,在解析
endTime
字符串后,您只需要传递
Minute
属性,然后对
startTime
的已解析
DateTime
对象使用
AddMinutes
方法来执行以下操作:

DateTime updateTime = DateTime.Parse(startTime).AddMinutes(DateTime.Parse(endTime).Minute);
它将返回
DateTime
对象,在原始
DateTime
对象的基础上增加5分钟,即1:00am,重新使用的时间为1:05am


查看正在传递整个
DateTime
对象的工作,而在解析
endTime
字符串后,只需传递
Minute
属性,然后对
startTime
的解析
DateTime
对象使用
AddMinutes
方法:

DateTime updateTime = DateTime.Parse(startTime).AddMinutes(DateTime.Parse(endTime).Minute);
它将返回
DateTime
对象,在原始
DateTime
对象的基础上增加5分钟,即1:00am,重新使用的时间为1:05am


请参阅工作

Add方法有一个获取TimeSpan的重载。按如下方式使用:

DateTime dt = DateTime.UtcNow; // this should be your value actually
DateTime newTime = dt.Add(TimeSpan.FromMinutes(5);

Add方法有一个重载,它获取TimeSpan。按如下方式使用:

DateTime dt = DateTime.UtcNow; // this should be your value actually
DateTime newTime = dt.Add(TimeSpan.FromMinutes(5);

您不能添加时间,只能添加跨度。但是,您可以通过
TimeOfDay
属性获取日期时间的跨度:

string startTime = "1:00 AM";
string endTime = "0:05 AM";

DateTime duration = DateTime.Parse(startTime).Add(DateTime.Parse(endTime).TimeOfDay);
但是,更建议直接使用时间跨度(您必须删除
AM
,因为它是一个跨度而不是日期时间):

如果你知道你将永远不会再添加除了分钟以外的内容,我会这样做:

string startTime = "1:00 AM";
int minutes = 5;

DateTime duration = DateTime.Parse(startTime).AddMinutes(minutes);

您可以了解有关日期时间的更多信息。

您不能添加时间,只能添加跨度。但是,您可以通过
TimeOfDay
属性获取日期时间的跨度:

string startTime = "1:00 AM";
string endTime = "0:05 AM";

DateTime duration = DateTime.Parse(startTime).Add(DateTime.Parse(endTime).TimeOfDay);
但是,更建议直接使用时间跨度(您必须删除
AM
,因为它是一个跨度而不是日期时间):

如果你知道你将永远不会再添加除了分钟以外的内容,我会这样做:

string startTime = "1:00 AM";
int minutes = 5;

DateTime duration = DateTime.Parse(startTime).AddMinutes(minutes);

您可以了解有关日期时间的更多信息。

将错误消息添加到问题将错误消息添加到问题AddMinutes方法是一个更好的选项(答案由@Ehsan提供)AddMinutes方法是一个更好的选项(答案由@Ehsan提供)+1。偏移量,从概念上考虑程序。你没有开始时间和结束时间。你有一个开始时间和持续时间。您真正想要的是“startTime”作为字符串,“durationInMinutes”作为整数。+1。偏移量,从概念上考虑程序。你没有开始时间和结束时间。你有一个开始时间和持续时间。你真正想要的是“startTime”作为字符串,“durationInMinutes”作为整数。不,不-这是个坏主意。这个代码可以工作。。。直到持续时间变为1-59之间的非整数分钟数。如果持续时间变为30秒或一整小时?然后这段代码将在开始时间上增加0分钟。不,不-这是个坏主意。这个代码可以工作。。。直到持续时间变为1-59之间的非整数分钟数。如果持续时间变为30秒或一整小时?然后,此代码将在开始时间上增加0分钟。