Професионална програма
Loading...
ivopesheff avatar ivopesheff 50 Точки

[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");

4
Programming Basics
Petya:
Многократно дублирана тема: https://softuni.bg/Forum/179/Homework-CSharp-Basics-Introduction-To-Programming-Problem-15-Age-after-10-Years
anastassija87 avatar anastassija87 5 Точки

Здравейте,

Аз също прегледах решенията на задачките на останалите потребители във форума, и тъй като не видях решение сходно със моето се усмелявам и аз да споделя :

        Console.WriteLine("When were you born? Use format(mm.dd.yyyy)!");
        string date = Console.ReadLine();
        DateTime dt = Convert.ToDateTime(date); // Конвертираме символния низ до показател за дата
        DateTime today = DateTime.Today; // Показва годините на потребителя в момента
        int age = today.Year - dt.Year;
        Console.WriteLine("Your current age is {0}.", age);
        Console.WriteLine("Your age in 10 years will be {0}. ", age+10);

 

Output

When were you born? Use format (dd.mm.yyyy)!

> 5.11.1990

Your current age is 25.

Your age in 10 years will be 35.

 

 

0
04/04/2015 14:47:10
supersane avatar supersane 234 Точки

В случея трябва да добавиш няколко условия, защото само с този алгоритъм ще има дати, които като се подават за входини данни, но не винаги ще дават очаквания изход. Ето пример за моята, направих тестови опита, работеше добре.


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);
            }
        }
    }
}

2
anastassija87 avatar anastassija87 5 Точки

Благодаря ти , абсолютно корекно, поправих условието да бъде мм.дд ( както беше първоначално замислено). В този слушай кодът тръгва безпроблемно.

0