@Ovddie

Как создать дату в приложении?

Добрый вечер! Я начинающий в C#, поэтому хотелось бы узнать, как правильно создать свою дату в приложении. В меру своих возможностей был создан код. Встал вопрос - насколько это вообще адекватно и есть ли вариант как это сделать более аккуратно?

public void OnClick() // 
    {
        gameDay++;
        if (gameMonth == 1 && gameDay > 31 || gameMonth == 3 && gameDay > 31 || gameMonth == 4 && gameDay > 30 || gameMonth == 5 && gameDay > 31 || gameMonth == 6 && gameDay > 30 || gameMonth == 7 && gameDay > 31 || gameMonth == 8 && gameDay > 31 || gameMonth == 9 && gameDay > 30 || gameMonth == 10 && gameDay > 31 || gameMonth == 11 && gameDay > 30)
        {
            gameDay = 1;
            gameMonth++;
        }
        if (gameMonth == 2)
        {
            if (gameLeapYear == 0)
            {
                if (gameDay > 29)
                {
                    gameDay = 1;
                    gameMonth++;
                }
            }
            else
            {
                if (gameDay > 28)
                {
                    gameDay = 1;
                    gameMonth++;
                }
            }
        }
        if (gameMonth == 12 && gameDay > 31)
        {
            gameDay = 1;
            gameMonth = 1;
            gameYear++;
            gameLeapYear++;
        }
        if (gameLeapYear > 3)
        {
            gameLeapYear = 0;
        }
    }
  • Вопрос задан
  • 104 просмотра
Решения вопроса 2
@oleg_ods
https://docs.microsoft.com/en-us/dotnet/api/system...

Может тебе это нужно?
Ответ написан
Комментировать
1. вот эти вот gameDay gameMonth и всё такое лучше бы вынести в отдельную структуру/класс GameDate
2. Если в игровой дате используется такой-же календарь, как и с реальными датами, то System.DateTime должен подойти и не надо городить свои велосипеды.
2.1. Над DateTime можно сделать небольшую обёртку, чтобы сделать его мутабельным и отбросить часовой пояс и время.
3. Если нужна очень сложная работа с датами, то можно посмотреть на NodaTime
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы