Introduction to Programming Homework - Ruse, 2015 [Problem 15 - AgeAfter10Years]
Здравейте, колеги! Забелязах, че 15-та задача се стори доста на интересна на всички, и всеки предлага доста уникални и креативни решения. Тъй като разглеждането на MSDN библиотеката беше част от упражненията, реших да си поиграя с форматирането на датата в задачата. Поствам кода си, и ще съм благодарен ако някой ми каже дали програмата не е прекалено "тромава".
https://www.dropbox.com/s/e03anxthe0f4472/AgeAfter10Years.txt?dl=0
Тази задача се оказа предизвикателство .Ако се смята само годините е лесно, но аз се заинатих и я усложних като добавих месеци и дни. В голямото четене се оказа, че DataTime метода няма директно изваждане на дати. Ето и моето решение : http://pastebin.com/uMz57LRG
Да, наистина е предизвикателство - заради това и ни харесва толкова. :)
Решението ти ми допада и наистина програмата работи (което винаги е учудващо, когато аз ги пиша като начинаещ в програмирането).
Пробвах с моята рождена дата, но ми изчислява дните с малко разминаване (14.05.1986 - Now 29 years, 6 months, 6 days). А днес е 17ти, не 20ти.
Аз не съм се опитвал да я правя толкова прецизна в дни и месеци, но ако искаш можеш да видиш и моето решение:
using System;
class AgeAfter10Years
{
static void Main()
{
Console.Write("Enter Your Birthday in dd.mm.yyyy format:");
string BirthDateText = Console.ReadLine();
DateTime birthDate = DateTime.Parse(BirthDateText);
DateTime currentDate = DateTime.Now;
int currentAge = currentDate.Year - birthDate.Year;
if (currentDate.Month <= birthDate.Month && currentDate.Day < birthDate.Day)
{
currentAge = currentAge - 1;
}
Console.WriteLine("Your Current Age Is:"+currentAge);
int futureAge = (currentDate.Year - birthDate.Year) + 10;
if (currentDate.Month <= birthDate.Month && currentDate.Day < birthDate.Day)
{
futureAge = currentAge + 10;
}
Console.WriteLine("Your Age After 10 Years Would Be:"+futureAge);
}
}
Благодаря за споделеното решение!