int age = int.Parse(Console.ReadLine());
age += 10;
Console.WriteLine(age);
Console.WriteLine("How old are you?");
userAge = int.Parse(Console.ReadLine());
Console.WriteLine("OMG!!! Your will be {0:D} after 10 years!", (userAge + 10));
Моето решение е същото.
Мисля, че най-добре отговаря на условието (поне това което имам аз о.О) и го няма проблема с различните месеци на раждане. Та и задачата не е трудна... с тази звездичка май много хора заключихме, че ще е нещо по-така.
Всъщност с дата на раждане е къде-къде по-интересно! трябва да следиш първо въведеното да е наистина дата. После да го направиш да работи с високосни години и с рожденни дни на 29 Февруари. А накрая да го направиш да може да се види резултатът дори и когато го пуснеш с F5.
int yearBorn = int.Parse(Console.ReadLine());
int yearNow = DateTime.Now.Year;
int age = yearNow - yearBorn;
Console.WriteLine("Now you are {0} years old.", age);
Console.WriteLine("After 10 years you will be {0}", age + 10);
Това е малко по-добре, има проверка за ден, месец и година :)
Console.Write("Please enter the day were you born: ");
int dayBorn;
while (!int.TryParse(Console.ReadLine(), out dayBorn) || dayBorn < 1 || dayBorn > 31) Console.WriteLine("Invalit day!!!");
Console.Write("Please enter the month were you born: ");
int monthBorn;
while (!int.TryParse(Console.ReadLine(), out monthBorn) || monthBorn < 1 || monthBorn > 12) Console.WriteLine("Invalit month!!!");
Console.Write("Please enter the year were you born: ");
int yearBorn;
while (!int.TryParse(Console.ReadLine(), out yearBorn) || yearBorn < 1900 || yearBorn > 2005) Console.WriteLine("Invalit year!!!");
var test = DateTime.Today;
var isEqual = test.Day >= dayBorn && test.Month >= monthBorn;
if (isEqual)
{
Console.WriteLine("You born on the {0}-{1}-{2}", dayBorn, monthBorn, yearBorn);
Console.WriteLine("Now you are {0} years old.", DateTime.Now.Year - yearBorn);
Console.WriteLine("After 10 years you will be {0}", DateTime.Now.Year - yearBorn + 10);
}
else
{
Console.WriteLine("You born on the {0}-{1}-{2}", dayBorn, monthBorn, yearBorn);
Console.WriteLine("Now you are {0} years old.", DateTime.Now.Year - yearBorn - 1);
Console.WriteLine("After 10 years you will be {0}", DateTime.Now.Year - yearBorn + 9);
}
Здравейте,
Исках само да поздравя Lyubo за решението, защото на мен то лично най-много ми допада. Единствено искам да коригирам, че за да излизат вярно годините test.Day трябва да е по малко от dayBorn.
Така би изгелждал вече поправеният ред от кода.
var isEqual = test.Day <= dayBorn && test.Month >= monthBorn;
Благодаря ти много за решението, поне за сега то за мен е най удачно.
Поздрави на всички! :)
P.S. Коелги, нека ако някой има още корекции към кода, да ги сподели, ще бъда благодарен!
Защо е със "*" ами защото този материал не е учен,тоест не сме учили Parse,Readline и тн(трябва сами да се поровим в нета) , но вместо да се чудите дали се въвежда датата или годините :D направете проверка за валидност на данните , няма да е готино да въведа
"Баба Пена" и да гръмне :) Аз го направих с Try и Catch.
Успех !
Според мен е по-добре да се използва DateTime и като цяло е хубаво да се пробват различни неща :) Може би е добре и да се използва DateTime.AddYears.
int birthYear;
Console.WriteLine("Enter the year you were born:");
birthYear = Console.ReadLine();
int yearsToday = DateTime.Now.Year - birthYear;
int futureAge = yearsToday + 10;
Console.WriteLine("You will be {0} years old after 10 years", futureAge);
Ето и от мен едно решение по условието с рождената дата: http://pastebin.com/jVPtFimZ
Не съм сигурен, че е най-доброто и ако някой има забележки моля да пише.
Ето нещо много просто за решение според мен:
Намирам, за много полезно , че има различни решения - научих много нови неща !
Благодаря на всички , че бяхте така добри и ги сложихте тук !
Моето решение , търпя сериозна критика ако има :) !
double a;
Console.WriteLine("Type your current age:");
a = double.Parse(Console.ReadLine());
Console.WriteLine("In 10 years you will be:" + (a + 10));
Малката разлика с решението което предоставяш и това което се изисква от задачата е, че трябва да въведеш рожденната си дата, след което да принтира на колко години се сега и на колко ще си след 10 години.
Още не съм се заел да е реша но решението, което си мисля е да използвам 3 проментливи за ден, месец и година като следователно са int day/month/year = int.Parse(Console.ReadLine()); и вече тези стойности да ги използваш заедно с DateTime. Ще остаря сам да се разровиш в нета за как точно да го направиш това - не е сложно спокойно :P После със друг DateTime смяташ разликата между двете дати и трябва да си извади на колко години си сега. Накрая остана просто да добавиш 10 към резултата и си готов :P
Мисля че в задачата се иска просто да се въведат годините на потребителя, а не датата на раждане. Определено по този начин, за който ти говориш е по-интелигентен, но в условието се искат просто годините на потребителя...
Write a program to read your age from the console and print how old you will be after 10 years.