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
dentia avatar dentia 362 Точки

Мисля, че излишно си усложняваш живота. Защо не извадиш от настоящия момент(DateTime.Now)  рожденната дата и вкараш едно условие в зависимост дали си родена преди или след настоящата. Пробвай и да четеш рожденната по различен начин, защото този предвижда доста проблеми при тестването от различни хора.

P.S. инта си е целочислен и не е много подходящ за подобен тип деления.

2
ZloboMiR avatar ZloboMiR 50 Точки

Здравей,

Ето моя код (така де, кодът, който взех назаем от един колега/колежка):

Линк

При проблеми с отварянето, опитай по-късно (любителски сървър без UPS :) ).
За по-голяма точност дели на 365.25.

Успех!



2
dentia avatar dentia 362 Точки
Имаш едно сгрешено ''you'' точно на последния ред. Не е голяма грешка, ама знаеш ли какви граматични гурута ще ти проверяват домашното. :)
1
kristina_j avatar kristina_j 15 Точки
Проблема си е налице пак :/ иначе мерси...не мога да си обясня къде ми е грешката.
0
antonradev avatar antonradev 43 Точки

Здравей! Това ми се вижда много сложно. Сигурна ли си, че такива са изискванията?

Да прочетем условието:

Write a program to read your birthday from the console and print how old you are now and how old you will be after 10 years.

Трябва ти една година, твоята и да принтираш на колко си години. След това според условието просто трябва да се добави 10. Аз съм го направил с въвеждане на рожденна си дата вместо писане на input в конзолата, но общо взето е същото, просто съм въвел DateTime. Не съм сигурен дали трябва да се делят такива сложни сметки като:

int age = (int)(myCurrentAge.Days / 365.2 + 10);

и да се правят някакви такива парсове като:

birthDay = DateTime.Parse(Console.ReadLine());

които мисля, че даже не ги разбираме. Ето моето решение на задачата. Не съм сигурен от условието на 100% дали това се иска,  но може да ти хрумне нещо от нея. Не успях да изпълня твоя код, IDE-то не показва грешки, но компилирано в конзолата, гърми цялата

// Birthday date
DateTime birthDay = new DateTime(1980, 12, 08);

// Today's date
DateTime todaysDate = DateTime.Now;

// Difference between Todays date and Birthday's date
// it is simply this year minus my birth year
var MyAge = todaysDate.Year - birthDay.Year;

// Printing My Age
Console.WriteLine("My Age is: " + MyAge);

// My age in 10 years from now
var myFutureAge = MyAge + 10;

// Printing My Future Age
Console.WriteLine("My Age in 10 years will be: " + myFutureAge);

41
antonradev avatar antonradev 43 Точки
Съжалявам за не добрата четимост на текста. Текстовия редактор на форума автоматично ми трие празни редове и прецаква малко форматирането. Мисля, че трябва малко да се оправи.
0
antonradev avatar antonradev 43 Точки

Радвам се, че успях да помогна :)

Поздрави и успехи!

0
Fleshian avatar Fleshian 379 Точки
Много се кефя като видя така добре формулирани коментари,всичко е ясно обяснено, с примери така че и на абсолютно начинаещ да му стане ясно. Браво за добрия отговор, даже смятам че трябва да се избере за Best Answer :)
0
ybaltova avatar ybaltova 14 Точки

Здравей,

При мен кодът ти сработва :) Единственото, което не се изписва е сегашната възраст, т.е. може да добавиш едно             Console.WriteLine("Your current age is {0}", (age - 10)); преди последния си ред.

Ето една идея за решение и от мен:

        Console.WriteLine("Enter your birthdate in the format yyyy/mm/dd");
        DateTime dateOfBirth = DateTime.Parse(Console.ReadLine());
        DateTime dateToday = DateTime.Now;
        int age = dateToday.Year - dateOfBirth.Year;

        if (dateToday.Month < dateOfBirth.Month || (dateToday.Month == dateOfBirth.Month && dateToday.Day < dateOfBirth.Day))
        {
            age--;
        }

        Console.WriteLine("You are " + age + " years old.");
        Console.WriteLine("In 10 years you will be " + (age + 10) + " years old.");
8
doktoraaaa avatar doktoraaaa 42 Точки

Аз мога да ти дам моя вариант който е доста опростен

//

  Console.Write("Enter your age:");
            byte age = byte.Parse(Console.ReadLine());
            age +=10;
            Console.Write("Your age will be:");
            Console.WriteLine(age);

//като имаш в предвид при мен не ги изчислява а директно ги въвеждаш и след това ги изчислява 

 

2
PetkoKolenichev avatar PetkoKolenichev 15 Точки

Здравей,

от условието се иска да въведеш рожденната си дата, не годините.

2
TsvetinaKoleva avatar TsvetinaKoleva 92 Точки

Ето още едно примерно решение, дано помогне на някого.

DateTime today = DateTime.Now; //calculating today's date


Console.Write("Write down your Birthday YYYY-MM-DD: "); //the console asks you to write down your birthday
DateTime date = DateTime.Parse(Console.ReadLine()); //initializing "date" as DateTime structure to the specified year, month, and day you were born in.

Console.WriteLine("Your age now: " + (today.Year - date.Year)); //calculating your years by substracting the year you were born in from the current year. Displaying it in the console.
Console.WriteLine("Your age after 10 years: " + (today.Year - date.Year + 10)); //display your already calculated age adding 10 years.

20
jumparo avatar jumparo 26 Точки

Здравей,твоят код най-ми хареа от всички- ясно, просто ,работи и е добре обяснено.
Много ми помогна.Благодаря ! 

 

0
19/10/2014 19:42:58
Panayotov1114 avatar Panayotov1114 1 Точки

Благодаря! Много полезно! :)

0
ZloboMiR avatar ZloboMiR 50 Точки
kristina_j кодът ти всъщност работи прекрасно при мен, вземам го с копи-пейст от първия пост. Въвеждам във формат 20.12.1900
В какъв формат е времето и датата при теб? Отпечати си ги на конзолата за проба и ползвай същия формат.
Как се казва *.cs файлът? На по-простата задача DateTime бях кръстил и сорса така, и съответно Студиото се объркваше между двете. Преименувах сорс файла и се оправи веднага.  
0
kasskata avatar kasskata 492 Точки

уау много код бе хора :) just like that:

DateTime birthDay = DateTime.Parse(Console.ReadLine());

int afterTenYears = (DateTime.Now.Year - birthDay.Year)+10;

и печатате afterTenYears

тук идеята ми е проста:

1.Въвеждаш входа, пазим в birthDay ;

2.инициализираме afterTenYears с цялата логика((сега "минус" въведеното в години) + 10)

а може и на един ред :

Console.WriteLine("After ten years you'll be "+(DateTime.Now.Year - (DateTime.Parse(Console.ReadLine()).Year) + 10)+ " old");

Горния ред е ЛОША ПРАКТИКА(анти КПК),така че не се правете

на вудумагьосници и си инициализирайте всяко нещо в променлива ЗАДЪЛЖИТЕЛНО за изпита!!!
Успех

5
poponai avatar poponai 16 Точки

Здравеите,

Така с обяснение на "човешки" език преди кода е много удобно.

Ако може повече така да се обяснява :)

Благодаря

0
TsvetinaKoleva avatar TsvetinaKoleva 92 Точки
Окей, ще го имам предвид, ако така е по-удобно и разбираемо. Edit-вам си кода по-горе с коментари на "човешки език" xD
0
ivailov94 avatar ivailov94 0 Точки

Мноого съкратено и разбираемо евала 

0
TeodorTodorov avatar TeodorTodorov 27 Точки
Извинявам се за индийския код, но ме домързя ;D, кода не е проверен на 100 %, но ако утре имам рожден ден все още съм по-малък , ако имам днес съм-по голям. Изглежда, че работи

Console.WriteLine("Give me your birthdate I'm the God of Kondio's world:");
            DateTime ageNow = DateTime.Parse(Console.ReadLine());
            DateTime now = DateTime.Now;
            TimeSpan age = (now.Subtract(ageNow));

            Console.WriteLine(new DateTime(age.Ticks).Year -1);
            Console.WriteLine(age.Ticks);
            Console.WriteLine("Age after ten years:{0}", (new DateTime(age.Ticks).Year - 1)+10);

            
5
irenavoynova avatar irenavoynova 6 Точки

Здравейте,

Ето моя доста прост начин за решаване на задачата. В нея се иска:

1. Your birthday from the console

2. print how old you are now

3.how old you will be after 10 years.

_____

{
    class Age_AfterTenYears2
    {
        static void Main(string[] args)
        {
            Console.WriteLine("My birthday year is 1990");
            int born = 1990;
            int yearnow = 2014;
            int years = yearnow - born;
            Console.Write("How old I am now?:");
            Console.WriteLine(yearnow - born);
            Console.Write("How old I will be after 10 years?:");
            Console.WriteLine(years + 10);
            
        }
    }
}


6
to6ko0 avatar to6ko0 -1 Точки

Много прост начин! 

class DateBirthday
{
static void Main()
{
int b, a;

Console.Write("What is your Birthday year: ");
a = int.Parse(Console.ReadLine());
Console.Write("What is current year: ");
b = int.Parse(Console.ReadLine());
Console.WriteLine("Your age now is: "+(b-a));
Console.WriteLine("Your age after Ten years will be: "+(10+(b-a)));
}
}

 

}

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