Задача свързана с DateTime и if clause
Здравейте,
Една от задачите за домашно е следната:
Write a program to read your birthday from the console and print how old you are now and how old you will be after 10 years.
Успях да направя същественото, но се затруднявам с "доизглаждането" на програмата.
Кодът ми е следният:
using System;
class AgeAfter10yrs
{
static void Main()
{
string startdate;
Console.WriteLine("Please, type in your birthdate (dd-mm-yyyy)");
startdate = Console.ReadLine();
DateTime bday = DateTime.Parse(startdate);
DateTime now = DateTime.Now;
TimeSpan ts1 = now.Subtract(bday);
DateTime dt = new DateTime(0001, 01, 01);
TimeSpan ts2 = new TimeSpan(365, 0, 0, 0);
TimeSpan ts3 = new TimeSpan(3650, 0, 0, 0);
dt = dt + ts1 - ts2;
Console.WriteLine("Your current age is:{0}",dt.ToString("yy"));
dt = dt + ts3;
Console.WriteLine("Your Age after 10 years will be:{0}",dt.ToString("yy"));
}
}
Върпросът ми е:
1. Как би трябвало да постъпя, за да може в случай, че се въведе различна стойност от (dd-mm-yyyy) да връща обратно към първоначалния случай? Очевидно е, че трябва if clause, но в случая стойността не е проста.
2. Въпреки че има малка вероятност (но все пак сме устремени към съвършенството), го има проблема с високосни години. Ако беше pascal, проблема би бил по-лесен (чрез mod), но очевидно тук не става по същия начин. Това е необходимо, за да се знае дали в уравнението да се използва като стойност, за даден ts(timespan) - 365 или 366.
Благодаря предварително за вниманието.