Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.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#_Date_Datetime_Time_Seconds - Fatal编程技术网

C# 添加到日期的秒数以计算时间

C# 添加到日期的秒数以计算时间,c#,date,datetime,time,seconds,C#,Date,Datetime,Time,Seconds,快速提问,我有一个程序,它给出了自01.01.2000以来的秒数 例如,12.02.2016 11:23:55的秒数大约为508590531秒 是否有一种方法可以根据过去的秒数和开始日期计算结束日期 我知道我可以手工计算过去的分钟/天/月/年,然后尝试计算“结束时间”,但我必须注意不要因为遗漏闰年而犯错误 快速定义只是为了完全清楚: Start Date : 01.01.2000 End Date: Current Date Time passed: Seconds passed betw

快速提问,我有一个程序,它给出了自
01.01.2000
以来的秒数

例如,
12.02.2016 11:23:55
的秒数大约为
508590531

是否有一种方法可以根据过去的秒数和开始日期计算结束日期

我知道我可以手工计算过去的分钟/天/月/年,然后尝试计算“结束时间”,但我必须注意不要因为遗漏闰年而犯错误

快速定义只是为了完全清楚:

Start Date : 01.01.2000
End Date:    Current Date
Time passed: Seconds passed between start date and end date
当然

你可以互相减法,用like

如果要将其转换为
int
,可以显式将其转换为
(int)ts.TotalSeconds

如果您已经有秒数,并且希望根据开始日期进行计算,则可以使用like


这很容易。只需添加秒数,无需魔法或新解决方案

DateTime AddedFrom2000 = new DateTime(2000, 1, 1).AddSeconds(508590531);

如果我没有弄错的话,您的代码会计算自2000年1月1日以来的秒数。我要找的是01.01.2000+seconds=date这不是你想要的,至少我理解为@SonerPossible duplicate,
508590531
2000年1月1日12.02.2016 11:08:51not
12.02.2016 11:23:55
@Equalsk是的,这也概括了我的问题:答案不错,但也要注意
DateTimeKind
。如果您的原始值是2000-01-01 UTC午夜后的秒数,则在此处创建
DateTime
时设置
DateTimeKind.UTC
。目前,这段代码使用的是
DateTimeKind.Unspecified
,如果基础真的是一个“浮动时间”,这就很好了。如果在序列化或时区转换中使用结果值,则此区别很重要。
var dt = new DateTime(2000, 1, 1).AddSeconds(508590531); // {12.02.2016 11:08:51}
var newDate = oldDate.AddSeconds(numSeconds);
DateTime AddedFrom2000 = new DateTime(2000, 1, 1).AddSeconds(508590531);