Datetime.now作为TimeSpan值?

28

我需要当前日期时间减去myDate1,并以秒为单位。

DateTime myDate1 = new DateTime(1970, 1, 9, 0, 0, 00);
DateTime myDate2 = DateTime.Now;

TimeSpan myDateResult = new TimeSpan();

myDateResult = myDate2 - myDate1;

.
.
我尝试了不同的计算方法,但没有效果。

TimeSpan mySpan = new TimeSpan(myDate2.Day, myDate2.Hour, myDate2.Minute, myDate2.Second);

这个计算方式并不重要,输出结果应该只是这两个值之间的秒数差。


1
你不需要执行 myDateResult = new TimeSpan(); - 你不必为每个变量都设置初始化表达式,或者你可以将初始化器设置为以下表达式。 - Damien_The_Unbeliever
2
@user1559441,你已经计算了TimeSpan myDateResult的差异,你可以使用TotalSeconds属性来获取以秒为单位的差异。 - Habib
1
是的,.TotalSeconds 就是答案。谢谢。 - MrMAG
7个回答

46

代码:

TimeSpan myDateResult = DateTime.Now.TimeOfDay;

print("Hello World!")输出 "Hello World!" - ArnonZ
7
这应该是被接受的答案,因为它完全符合主题问题。 - Alfredo Rodriguez

31

你的代码是正确的。你已经将时间差作为TimeSpan值,因此你只需要使用TotalSeconds属性以秒为单位获取它:

DateTime myDate1 = new DateTime(1970, 1, 9, 0, 0, 00);
DateTime myDate2 = DateTime.Now;

TimeSpan myDateResult;

myDateResult = myDate2 - myDate1;

double seconds = myDateResult.TotalSeconds;

7

5

2
你需要获取你的时间间隔的.TotalSeconds属性:
DateTime myDate1 = new DateTime(2012, 8, 13, 0, 05, 00);
DateTime myDate2 = DateTime.Now;
TimeSpan myDateResult = new TimeSpan();
myDateResult = myDate2 - myDate1;
MessageBox.Show(myDateResult.TotalSeconds.ToString());

1
您可以使用Subtract方法:
DateTime myDate1 = new DateTime(1970, 1, 9, 0, 0, 00);
DateTime myDate2 = DateTime.Now;
TimeSpan ts = myDate2.Subtract(myDate1);
MessageBox.Show(ts.TotalSeconds.ToString());

0
TimeSpan myDateResult;

myDateResult = DateTime.Now.Subtract(new DateTime(1970,1,9,0,0,00));
myDateResult.TotalSeconds.ToString();

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接