Пользовательская структура даты и времени - PullRequest
0 голосов
/ 09 июля 2010

Я пытаюсь разработать приложение для часов с изображениями для каждой цифры от 0 до 9. Написал структуру, которая дает мне каждую цифру время от времени. Ниже приводится структура.

public struct TimeStruct
{
    public DateTime dt
    {
        get
        {
            return DateTime.Now;
        }
    }
    public int s
    {
        get
        {
            return dt.Second;
        }
    }
    public int s2
    {
        get
        {
            return s % 10;
        }

    }
    public int s1
    {
        get
        {
            return s / 10;
        }
    }
    public int m
    {
        get
        {
            return dt.Minute;
        }
    }
    public int m2
    {
        get
        {
            return m % 10;
        }
    }
    public int m1
    {
        get
        {
            return m / 10;
        }
    }
    public int h
    {
        get
        {
            return dt.Hour;
        }
    }
    public int h2
    {
        get
        {
            return h % 10;
        }
    }
    public int h1
    {
        get
        {
            return h / 10;
        }
    }
    public int d
    {
        get
        {
            return (int)dt.DayOfWeek;
        }
    }

}

Пожалуйста, дайте мне указание изменить эту структуру так, чтобы опора s2 была установлена ​​только тогда, когда s1 становится 0. И то же самое с минутами. Используемая технология: Silverlight Платформа: Windows Phone 7

Это была плохая идея использовать struct?

Ответы [ 2 ]

3 голосов
/ 09 июля 2010

Что вы подразумеваете под "prop s2 должен быть установлен только когда s1 становится 0" - что вы хотите, чтобы он делал, когда s1 не 0? Возможно, вы ищете типы значений, допускающие значение NULL, где в некоторых случаях s1 возвращает нулевое значение?

Я должен сказать, я думаю, что это довольно запутанный тип. У него нет реального состояния - это фактически просто набор статических свойств. Любая причина не реализовывать это как набор статических свойств, например в CurrentDateTime классе? Или просто использовать DateTime.Now? Обратите внимание, что если вы спросите свою структуру для набора значений, по одному за раз, это может очень хорошо дать вам противоречивые результаты с течением времени. Например, предположим, что время 1:59:59, и вы звоните s, затем m, затем h - вы можете получить 59, 59, 2, когда текущее время переходит от 1:59: С 59 до 2:00:00 между двумя последними звонками. Если вы возьмете значение DateTime.Now просто один раз и запросите его для всех его свойств, вы получите согласованное представление.

2 голосов
/ 09 июля 2010

Зачем изобретать велосипед? Использовать DateTime и TimeSpan.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...