Софтуерно Инженерство
Loading...
+ Нов въпрос
remote87 avatar remote87 121 Точки

Textbook Exercise 11 1st Lecture - Age after 10 years

Здравейте!

Дано не се приеме за спам, но реших да споделя и едно мое решение на тази задача / простичко, но ефективно / :

using System;

namespace _06.AgeAfterTenYears
{
    class AgeAfterTenYears
    {
        static void Main()
        {          
            Console.WriteLine("Enter your birth date like this 16/05/1987 :");
            DateTime date = Convert.ToDateTime(Console.ReadLine());
            DateTime today = DateTime.Today;
            int age = today.Year - date.Year;
            Console.WriteLine("Now you are {0} years old.", age);
            int a = 10;
            Console.WriteLine("After ten years you will be {0} years old.", (age + a));
        }
    }
}

Само не ми стана ясно, дали има вариант DateTime да се въведе само година?

Тагове:
Lamms avatar Lamms 197 Точки

Това е много опростен вариант. Идеята е потребителят да си въвежда сам рождената дата, като така задачата се усложнява, защото трябва да се правят проверки за месеца и датата на раждане. Твоето решение не работи, ако човекът е роден на 16/10, пак ще даде 28, а човекът е на 27.

1
remote87 avatar remote87 121 Точки

Принципно е така, но ето условието, копирано точно от учебника:

11.   Направете програма, която прочита от конзолата вашата възраст и изписва (също на конзолата) каква ще бъде вашата възраст след 10 години.

Никъде не се споменава за месец и т.н.

Иначе - приемам забележката и сега започвам да ровя, как да го коригирам и да хваща и месеца и спрямо него да изчислява :)

П.С. току що гледах видео на Наков / вярно по време на лекция /, но по същото условие го смята само за годината и дори не използва DateTime, може би затова съм се подвел и съм го написал така...Наков е виновен :D

 

0
Lamms avatar Lamms 197 Точки

В задачата пише да се  прочетат данните от конзолата, а не ти предварително да задаваш стойност. Няма как да да ти работи правилно, ако няма проверка за деня и месеца. 

П.п. Погледнах условието, даже са ти подказали да използваш Console.ReadLine() и .Parse().

1
remote87 avatar remote87 121 Точки

Сега май работи със всякаква дата:

using System;

namespace _06.AgeAfterTenYears
{
    class AgeAfterTenYears
    {
        static void Main()
        {
            Console.WriteLine(DateTime.Now);
            Console.WriteLine("Enter your birth date like this 16/05/1987 :");
            DateTime birthdate = DateTime.Parse(Console.ReadLine());
            DateTime presentDate = DateTime.Now;
            int age = presentDate.Year - birthdate.Year;
            Console.WriteLine("You are {0} years old now.", age);
            Console.WriteLine("Your age after 10 years will be {0}", age + 10);
        }
    }
}

:)

0
RoYaL avatar RoYaL SoftUni Team Trainer 6845 Точки

"Само не ми стана ясно, дали има вариант DateTime да се въведе само година?". Има, но трябва служебно да въведеш някакъв месец и ден. Иначе що за Date Time би било, ако другите не присъстват :):):).

DateTime someDate = new DateTime(1980, 01, 01);

Това 1980 можеш да го вземеш от входа на потребителя например.

1
14/08/2015 13:34:31