[Homework] C# Basics - Introduction to programming - Problem{15} - Age after 10 Years
Колеги,
Някой да е правил Задача 15?
Споделям моя код. Проблемът е, че не смята месец и ден, а закръгля на година.
Някой сеща ли се за по-добър начин да се пресметне с точност, примерно до минути?
Подозирам, че има нещо по-детайлно от date.Year, но не успявам да открия.
DateTime today = DateTime.Now;
Console.Write("Birthday YYYY-MM-DD: ");
DateTime date = DateTime.Parse(Console.ReadLine());
Console.WriteLine("Your age: " + (today.Year - date.Year) + " years");
Console.WriteLine("Age in 10 years: " + (today.Year - date.Year + 10) + " years");
В случея трябва да добавиш няколко условия, защото само с този алгоритъм ще има дати, които като се подават за входини данни, но не винаги ще дават очаквания изход. Ето пример за моята, направих тестови опита, работеше добре.
namespace AgeAfterTenYears
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Enter your birthday in this format (YYYY,MM,DD) Example: 1995,12,21 ");
DateTime birthday = DateTime.Parse(Console.ReadLine());
DateTime today = DateTime.Now;
int age = today.Year - birthday.Year;
if (birthday.Month > today.Month)
Console.WriteLine(age - 1);
else if(birthday.Month == today.Month)
{
if(birthday.Day > today.Day)
{
Console.WriteLine(age - 1);
}
else
{
Console.WriteLine(age);
}
}
else
{
Console.WriteLine(age);
}
}
}
}
Благодаря ти , абсолютно корекно, поправих условието да бъде мм.дд ( както беше първоначално замислено). В този слушай кодът тръгва безпроблемно.