web-dev-qa-db-ja.com

タイムスパンを2で割りますか?

私は2回持っていますが、それらの値は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)

28
Megaoctane

私はあなたがこれをしたいと思います:

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

必要に応じて1行で書くことができます。

59
Casperah

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

1
qwertyuu