Как сделать вычитание даты через DataTime?

Всем привет. Я хотел сделать вычитание времени, но сегодня, то что написано теперь не работает.

Мне нужно сделать что-то типо подписки. Я выдаю её на условный месяц и оно должно считать дни до конца её окончания. Вот код, который у меня был:

Ошибку, к слову, выдаёт такую - Исключение не обработано System.FormatException: "Входная строка имела неверный формат."

        static int BigBrainMath()
    {
        var aa = Form1.static_MFI.End.ToString();

        string year = string.Empty;
        string month = string.Empty;
        string day = string.Empty;
        int counter = 0;

        foreach (var i in aa)
        {
            if (counter == 1 || counter == 2)
            {
                day += i;
            }
            if (counter == 3 || counter == 4)
            {
                month += i;
            }
            if (counter == 5 || counter == 6)
            {
                year += i;
            }
            counter++;
        }
        DateTime dt = new DateTime(2000 + int.Parse(year), int.Parse(month), int.Parse(day));
//ошибку помечает на строке выше.
        TimeSpan ot = dt - DateTime.Now;
        return (int)((float)ot.TotalDays);
    }

Ответы (2 шт):

Автор решения: VladD

Очевидно, ваш код ожидает, что в строке aa окажутся 6 символов, которые вы хотите разделить на день, месяц и год, после чего превратить их в дату.

Вместо цикла и всего такого проще воспользоваться DateTime.TryParseExact:

if (DateTime.TryParseExact(
        aa, "ddMMyy", CultureInfo.InvariantCulture, DateTimeStyles.AssumeLocal, out var dt))
{
    TimeSpan ot = dt - DateTime.Today;
    ...
}
else
{
    // в aa не было даты в нужном формате
    // как-то отреагировать на ошибку тут
}
→ Ссылка
Автор решения: eco

Спасибо всем большое, что пытались помочь. Я нашел ошибку. Она была в первой форме. После того, как я добавил еще одну функцию, на ней все заканчивалось return true; и переменная aa не могла получить данные из бд, т.к. шла после.

Извините за неточный вопрос, а ещё за то, что скинул не всё что нужно. Всем удачи !

→ Ссылка