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
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.