c# - Разделить интервалы времени на 2?




windows-phone-7 datetime xml-parsing (3)

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

У меня есть два раза, и их значения взяты из 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));

Это дает время: 04:28 для восхода солнца и 22:00 для заката. Как выполнить расчет, когда я беру:

(sunrise + (sunset-sunrise)/2)


Я думаю, вы хотите это сделать:

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

Его можно записать в одну строку, если хотите.


Подписка является более низким уровнем, и вам действительно никогда не придется ее использовать. On обеспечивает более дружественные перегрузки, которые позволяют строго типизировать аргументы. Вот пример:

сервер

public class MyHub
{
    public void Send(string message, int age)
    {
        Clients.All.send(message, age);
    }
}

клиент

Шаблон подписки

public void Main()
{
    var connection = new HubConnection("http://myserver");
    var proxy = connection.CreateHubProxy("MyHub");

    var subscription = proxy.Subscribe("send");
    subscription.Received += arguments =>
    {
        string name = null;
        int age;
        if (arguments.Count > 0)
        {
            name = arguments[0].ToObject<string>();
        }

        if (arguments.Count > 1)
        {
            age = arguments[1].ToObject<int>();
        }

        Console.WriteLine("Name {0} and age {1}", name, age);
    };
}

"На" шаблон

public void Main()
{
    var connection = new HubConnection("http://myserver");
    var proxy = connection.CreateHubProxy("MyHub");

    proxy.On<string, int>("send", (name, age) =>
    {
        Console.WriteLine("Name {0} and age {1}", name, age);
    });
}




c# windows-phone-7 datetime xml-parsing