34

我有两次,它们的值是从 web 的 XML 中获取的。

XElement xmlWdata = XElement.Parse(e.Result);

string SunRise = xmlWdata.Element("sun").Attribute("rise").Value;
string SunSet = xmlWdata.Element("sun").Attribute("set").Value;

DateTime sunrise = Convert.ToDateTime(SunRise.Remove(0,11));
DateTime sunset = Convert.ToDateTime(SunSet.Remove(0, 11));

这给了 med 时间:日出 04:28,日落 22:00。然后如何进行计算:

(sunrise + (sunset-sunrise)/2)

4

2 回答 2

75

我想你想这样做:

TimeSpan span = sunset-sunrise;
TimeSpan half = new TimeSpan(span.Ticks / 2);
DateTime result = sunrise + half;

如果你愿意,它可以写在一行中。

于 2012-05-20T07:58:16.557 回答
1

TimeSpan sunnyTime = TimeSpan.FromTick(sunrise.Ticks + (sunset.Ticks - sunrise.Ticks) / 2);

于 2013-04-07T06:29:54.727 回答