Loading...
kristina_j avatar kristina_j 15 Точки

[Homework] C# Basics - Introduction To Programming - Problem {15} - Age after 10 Years

Здравейте!Обръщам се към вас с проблем към 15 задача от домашно 1 (Age after 10 years).Хипотетично съм въвела следния код:Console.Write("Enter your birhday: ");
            DateTime birthDay = new DateTime();
            birthDay = DateTime.Parse(Console.ReadLine());
            System.TimeSpan myCurrentAge = new TimeSpan();
            myCurrentAge = (DateTime.Now - birthDay);
            int age = (int)(myCurrentAge.Days / 365.2 + 10);
            Console.WriteLine("Your age after ten years will be: " + age);

компилирала съм и го стартирам,но на конзолата излиза само написаното след първото "Console.Write / Console.WriteLine" ,или в случая Enter your birhday:,независимо какво въвеждам след него.Вероятно правя някъде елементарна грешка,но не мога да я открия.Пробвах с различни кодове,но резултата е един и същ.Благодаря предварително! 

 

Тагове:
9
Programming Basics 18/09/2014 23:26:02
Anonymous:
Темата нарушава т.9 от правилата на форума : https://softuni.bg/forum/questions/details/217
yankozlatanov avatar yankozlatanov 10 Точки

Здравейте колеги,

Като начинаещ в програмирането искам и аз да споделя моето решение на тази доста интересна за мене задачка.

Освен да намира годините и да прибавя на колко ще бъде потребителя съм се опитал да направя така че, да проверявам месеца и деня на рожденя ден за по голяма точност на изчисление.

Извинявам се ако нещо в коментарите към кода е малко неразбираемо, английския не ми е силна страна.

Дано да съм бил полезен.

http://pastebin.com/5gwRB0ud

 

 

 

-1
25/10/2014 17:42:58
beshko avatar beshko 19 Точки

Ето го и моето решение:

http://pastebin.com/HX7uWpxx

 

 static void Main()
    {
        Console.WriteLine("Please enter your birthday (ex. DD/MM/YY): ");
        DateTime birthDay = new DateTime();
        birthDay = DateTime.Parse(Console.ReadLine());
        DateTime currentDay = DateTime.Now;
        int myAge = (DateTime.Now.Year - birthDay.Year);
        if (birthDay.Year > currentDay.Year || birthDay.Year == currentDay.Year)
        {
            Console.WriteLine("You are not born!");
        }
        else if (currentDay.DayOfYear < birthDay.DayOfYear)
        {
            myAge--;
            Console.WriteLine("After 10 years you will be {0} years old", myAge + 10);
        }
        else if (birthDay.DayOfYear == currentDay.DayOfYear)
        {
            Console.WriteLine("After 10 years you will be {0} years old", myAge + 10);
            Console.WriteLine("Happy birthday!");
        }
        else
        {
            Console.WriteLine("After 10 years you will be {0} years old.", myAge + 10);
        }

    }

1
SimeonStoykov avatar SimeonStoykov 114 Точки

Здравей колега. Много добре си се справил и си решил задачата (дори си я направил по-интересна като си вкарал Happy Birthday). Имам само една малка забележка. При проверката дали човека е роден имаш пропуск. Проверяваш само годините, но не и датите и така например ако въведеш че имаш рожден ден на 4/02/2015 и програмата ти казва, че не си роден, а днес е 5-ти. Този пропуска може да се оправи като добавиш проверка за датите в if-а.

if ((birthDay.Year > currentDay.Year || birthDay.Year == currentDay.Year) && birthDay.Day > currentDay.Day)
{
Console.WriteLine("You are not born!");
}

0
kalimma avatar kalimma 0 Точки

Исках да постна коментара си на общо, но не мога да разбера къде е бутонът за това действие, излиза ми сякаш мога само да коментирам коментарите?!
Както и да е, от всичко прочетено, направих един синтез и мисля, че добре се получи, може би трябва да му добавя само един Error message, като въвеждаш неправилен формат или нещо такова.

Eто го и моят код: http://pastebin.com/AXF2y6t9

Console.Write("Please enter your birthday in format dd-mm-yyyy or yyyy-mm-dd: "); // вкарваш данните в конзолата

            DateTime dateOfBirth = DateTime.Parse(Console.ReadLine()); // конзолата ги прочита и ги инициализира като date

            DateTime today = DateTime.Now; // инициализираме променлива с днешната дата

            int age = today.Year - dateOfBirth.Year;      // инициализираме променлива, която изчислява на колко години сме според набора
     
              if (today.Month < dateOfBirth.Month || (today.Month == dateOfBirth.Month && today.Day < dateOfBirth.Day))
                 {
                     age--;
                 }         // вкарваме един if, който да проверява и изчислява дали сме навършили годините си според набора
   
            Console.WriteLine("Your age now: " + age); // изписва годините

            Console.WriteLine("Your age after 10 years: " + (age + 10)); // изписва годините +10

0
03/07/2015 15:55:32
LoKSET avatar LoKSET 160 Точки

Ето и моя вариант. Исках да хвана проблеми на входа и затова ползвах TryParse.

http://pastebin.com/Sp5WDqms

0
31/01/2015 10:03:59
Rextor92 avatar Rextor92 149 Точки

TryParse е добро решение, аз също използвах него; но да викаш Main(); според мен не е удачен вариант. Един while цикъл би стоял по-добре.

Console.Write("Please enter your birthday in format Day.Month.Year: ");
string input = Console.ReadLine();
while(!DateTime.TryParse(input, out birthday)
{
Console.WriteLine("Try to cooperate! This is invalid date format!\n");
Console.Write("Please enter your birthday in format Day.Month.Year: ");
string input = Console.ReadLine();
}

Проверката if (Birthday.AddYears(age) > Now) много ми харесва..

2
29/06/2015 23:31:03
Snooty7 avatar Snooty7 -1 Точки

От това, което виждам много код сте писали за такава малка задача.

Ето и един пример от мен:

 class Ageafter10Years
{
    static void Main(string[] args)
    {
        Console.WriteLine("04.08.1986");
        int MyAge = 29;
        Console.WriteLine("Now: {0}",+ MyAge);
        Console.WriteLine("My age after 10 years: {0}", MyAge + 10);
    }
}

-1
PavelManahilov avatar PavelManahilov 216 Точки

Колега, в задачата трябва да въведеш рожденната си дата от конзолата, а програмата ти да изчисли на колко години си в момента и на колко ще бъдеш след 10 години

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