Loading...

Във форума е въведено ограничение, което позволява на потребителите единствено да разглеждат публикуваните въпроси.

MilushK avatar MilushK 44 Точки
Моето решение, след като разбрах и аз впоследствие реалното условие.
0
zarkoNGU avatar zarkoNGU 21 Точки

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

        Console.Write("Enter your day of your birthday: ");
        int day = int.Parse(Console.ReadLine());
        Console.Write("Enter your month of your birthday: ");
        int month = int.Parse(Console.ReadLine());
        Console.Write("Enter your year of your birthday: ");
        int year = int.Parse(Console.ReadLine());
        int yearsNow = DateTime.Now.Year - year;
        if (month == DateTime.Now.Month)
        {
            if (day < DateTime.Now.Day)
            {
                Console.WriteLine("After ten years you will be on: {0}",(yearsNow+10));
            }
            else
            {
                Console.WriteLine("After ten years you will be on: {0}",(yearsNow+9));
            }
        }
        if (month < DateTime.Now.Month)
        {
            Console.WriteLine("After ten year you will be on: {0}",(yearsNow+10));
        }
        if (month > DateTime.Now.Month)
        {
            Console.WriteLine("After ten years you will be on: {0}",(yearsNow+9));
        }

    Кода  int.Parse(Console.ReadLine());  ви помага да вземете числото, което ще напишете на конзолата,когато Ви попита. С този код взимам деня,месеца и годината.

   Кода или по-точно цикъла:

     if ( задавате условие, което конзолата проверява и ако вярно извършва действието в долните скоби "{ тук } ")  - Условието, което аз съм задал е да сравни месеца, който сме сега ( DateTime.Now.Month ви служи да вземете месеца, който е зададен в календара на компютъра Ви. По същия начин използвам на други места и DateTime.Now.Day  и  DateTime.Now.Year )

       

             На тези редове можете да задавате команди. Конзолата ще изпълни всички от тях преди да сте затворили скобите " { } " .

                    }


      Надявам се да съм помогнал на някого :)

1
svetli0o avatar svetli0o 134 Точки

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

Console.WriteLine("Write your birthday");

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

и после можеш да достъпиш деня, месеца и годината така - birthDay.Day, birthDay.Month, birthDay.Year.

:)

5
zarkoNGU avatar zarkoNGU 21 Точки
Наистина много полезно и спестява доста редове, не го знаех :) Благодаря
0
georgi.bogdanov84 avatar georgi.bogdanov84 9 Точки

Мисля, че това е добро решение на задачата :

 static void Main()
    {
        int num;
        Console.Write("Enter your age:");
        num = int.Parse(Console.ReadLine());
        num = num + 10;
        Console.WriteLine("-----------------------------------");
        Console.WriteLine("Your age after 10 years will be {0}", num);
        Console.WriteLine("-----------------------------------");
    }

0
ViValDam avatar ViValDam 15 Точки
условието се смени - въвежда се датат на раждане , а не възрастта
1
svetli0o avatar svetli0o 134 Точки
   Моето решение: (не проверява месецитe)

     static void Main()
    {
        Console.WriteLine("Please write your age.");
        DateTime birthDay = DateTime.Parse(Console.ReadLine());
        int currentAge = DateTime.Now.Year - birthDay.Year;
        Console.WriteLine("Your age now is: " + currentAge);
        int ageAfter10Years = currentAge + 10;
        Console.WriteLine("Your age after 10 years will be: " + ageAfter10Years);
    }







0
ViValDam avatar ViValDam 15 Точки

СБЪРКАЛ СИ ИЗРЕЧЕНИЕТO , промпта,  КЪМ ПОТРЕБИТЕЛЯ - НЕ , YOUR AGE , A YOUR BURTHDAY IN FORMAT [ MONTH/DAY/YEAR]   - DEFAULT FORMAT FOR DateTime

ДАТАТА МОЖЕ ДА Е НАПИСАНА ТАКА 5/29/31 или така 1/1/2014 или така 02/5/ 75 - все я взима за вярна DateTime

Иначе - браво !

1
filipm avatar filipm 8 Точки

Моето решение:

http://pastebin.com/jR2X9mcg

0
ViValDam avatar ViValDam 15 Точки
ЗАДАЧАТА СЕ ПРОМЕНИ , ТРЯБВА ДА СЕ ВЪВЕДЕ РОЖДЕННА ДАТА , А НЕ ВЪЗРАСТ 
-1
filipm avatar filipm 8 Точки
Аз именно рожденна дата d.m.yyyy търся.
0
Dimitar_Ruskov avatar Dimitar_Ruskov 4 Точки

Ето едно просто решение:

using System;

class AgeAfter10Years
{
    static void Main()
    {
        DateTime Birthday = Convert.ToDateTime(Console.ReadLine());
        int birthYear = Birthday.Year;
        DateTime Today = DateTime.Now;
        int currentYear = Today.Year;
        Console.WriteLine("You are {0} years old in {1}.",currentYear-birthYear,currentYear);
        Console.WriteLine("You will be {0} years old in {1} (after 10 years).",currentYear-birthYear+10,currentYear+10);
        
    }
}













2
nikolay.dimov83 avatar nikolay.dimov83 143 Точки

И аз прочетох, че са сменили задачата, едва след като предадох заданието, но пък така е по - интересна.

Реших да ви представя решение, което конвертва датите в стрингове, от тях изтегля годината на раждане и годината сега, превръща ги в integer и смята възрастта. Решението съвсем не е перфектно, но пък показва методи по които можете да изкарате знаци от ляво и дясно на стрингов израз:

 

   string StrBirthDate;

   Console.WriteLine("Please enter your date of birth dd/mm/yy ");
   StrBirthDate = Console.ReadLine();

   string StrYearBirth;
   StrYearBirth = StrBirthDate.Substring(StrBirthDate.Length-4);
   int YearBirth = int.Parse(StrYearBirth);

   DateTime Today = DateTime.Today;
   string StrDateToday = Today.ToString();
   string StrYearToday = StrDateToday.Substring(StrDateToday.Length - 16);         
   StrYearToday = StrYearToday.Substring(0, 4);
   int YearToday = int.Parse(StrYearToday);

   int AgeNow = YearToday - YearBirth;
   int AgeAfter = AgeNow + 10;

   Console.WriteLine("Your age now is " + AgeNow + " years " + "and your age in 10 years is " + AgeAfter+" years");




0
ViValDam avatar ViValDam 15 Точки

не работи - сложи малко коментари - каква ти е идеята ? 

дава грешка на този ред   int YearBirth = int.Parse(StrYea

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

1
G.Burlakova avatar G.Burlakova 36 Точки

Ето примерно решение на задачата във варианта й със задаване на рождена дата. Използвах метода TryParse.

http://pastebin.com/FWg2m8Jv

2
TodorovH avatar TodorovH 216 Точки
Най-качественото решение според мен до момента!!! Браво!
1
ViValDam avatar ViValDam 15 Точки

И на мен ми харесва, твоето решение и подреждане на задачата ,особено хващането на грешките при въвеждането на данни , но с 2 забележки :

1. не се дала формата на на рожденната дата на потребителя -"Enter your birthday in format month/day/year", който е твоят формат и оригиналният,който ползва DateTime. Датата може да се въведе и така 5/29/61, и така 05/29/1961 - и двете ги чете правилно  DateTime. 

2. Не си извела сегашната възраст , а само тази след 10 години , а в условието го има . Точно, като синът ми - той вечно забравя нещо , от условията на задачите по математика, защото го мързи да ги чете до края, условията - ха ха ха !

Прибави това: Console.WriteLine("Your age now: {0}", ageNow);

Problem 1.       * Age after 10 Years

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.

 

2
G.Burlakova avatar G.Burlakova 36 Точки
Благодаря за положителните мнения! Ще оправя грешките веднага - забележките много ми помогнаха.
1
ViValDam avatar ViValDam 15 Точки

ЗА НИКОЛАЙ ДИМОВ


ЕТО, ОПРАВИХ ТИ Я ! БЕШЕ ЗАБАВНО И НАУЧИХ И АЗ МНОГО НОВИ НЕЩА .

ПЪРАТА МИ ПРОВЕРЕНА ПРОГРАМА !

ЗАБЕЛЕЖКИ :

1. ФОРМАТА НА ДАТАТА ТИ, КАКТО СИ Я ДАЛ,  dd/mm/yy НЕ МОЖЕ ДА РАБОТИ , защото 2014 - 95 не става, както и 14 -95 не става,а става 2014 - 1995 .

Така,че формата го сменяме на dd/mm/yyyy .

2. сЪЩО, КАТО БРОИШ колко характера да махнеш от стринта , брои и интервалите и "/ ", грешни са ти числата

3. Съветвате ,да слагаш след всеки ред , на който се получава някаква нова стойност , да си слагаш Console.Write(новата стойност)  за да видиш какво получаваш - това става и с дебъгера, но още не знам как, днес ще го тренирам .

Ето ти програмата ти - вече работеща - посе си изтрий коментарите и Console.WriteLine), за пробите ;

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

class AgeNowAndAfter10
{
static void Main()
{

string StrBirthDate;

  Console.WriteLine("Please enter your date of birth dd/mm/yyyy "); // ПРОБНА ДАТА - 16/02/1995
StrBirthDate = Console.ReadLine();
Console.WriteLine("StrBirthDate = " + StrBirthDate); // 16/02/1995 (string, not a number)

// geting the last 4 chars from date-birthdate (the year in format yyyy)
string StrYearBirth;
StrYearBirth = StrBirthDate.Substring(StrBirthDate.Length - 4); // 1995 (string, not a number)
Console.WriteLine("StrYearBirth = " + StrYearBirth);// 1995(string, not a number)

// turning (parsing) type string in type integer
int YearBirth = int.Parse(StrYearBirth); // 1995 , but it is already a number, not a string of chars any more
Console.WriteLine("YearBirth = " + YearBirth); // 1995 ( number, not string any more)

// getting the date-today
DateTime Today = DateTime.Today;
string StrDateToday = Today.ToString(); // 3/9/2014 00:00:00 (string, not a number)
Console.WriteLine("StrDateToday = " + StrDateToday);// 3/9/2014 00:00:00 (string, not a number)

// geting only the last 13 chars from date-today (the year in format yyyy)
string StrYearToday = StrDateToday.Substring(StrDateToday.Length - 13); // 2014 00:00:00 (string, not a number)
Console.WriteLine("StrYearToday = " + StrYearToday); // 2014 00:00:00 (string, not a number)

// getting only the first 4 chars from the string 2014 00:00:00
StrYearToday = StrYearToday.Substring(0, 4); // 2014 (string, not a number)
Console.WriteLine("StrYearToday = " + StrYearToday);// 2014 (string, not a number)

// turning string in number ( parsing ) string 2014 in number 2014
int YearToday = int.Parse(StrYearToday);
Console.WriteLine("YearToday = " + YearToday);

// number 2014 - number 1995
int AgeNow = YearToday - YearBirth;
Console.WriteLine("AgeNow = " + AgeNow); // 19 ( number)

// adding 10 to number 19
int AgeAfter = AgeNow + 10; // 29
Console.WriteLine("AgeAfter = " + AgeAfter);


Console.WriteLine("Your age now is " + AgeNow + " years " + "and your age in 10 years is " + AgeAfter + " years");

Console.Read();

}


}



















































































































































































           

1
nikolay.dimov83 avatar nikolay.dimov83 143 Точки

За VivaDam

Здравей,

Благодаря за проверката. Всъщност решението, което съм представил има страшно много недостъци - и ти ми показа още един който не се бях сетил - на моя компютър брояча на characters за махане работи точно - при теб вероятно има друг date формат на сегашна дата, което означава, че решението няма да работи при теб. Други недостъци са, че програмата няма да работи дори на моя комп след 9999 година (каква загуба за човечеството), няма и никакви проверки за грешен юзър инпут.

Почти всички решения по - горе са по - добри от моето, но пък това ми даде възможност да си поиграя със стрингове

0
Devilchild656 avatar Devilchild656 48 Точки

http://pastebin.com/waTbVzbs

Това е моето решение на задачата .
Показва на колко години си в момента след като си въведеш датата на раждане и след колко ще бъдеш след 10 години. 

0
KirilVelichkov avatar KirilVelichkov 13 Точки
Ето го моето решение , кратко и надявам се ясно :)
            DateTime bday = new DateTime(1987, 12, 9);
            DateTime now = DateTime.Today;
            Console.WriteLine("My Birthday is " + bday.ToString("yyyy/M/dd"));
            int age = now.Year - bday.Year;
            Console.WriteLine("I am " + age + " years old");
            Console.WriteLine("After 10 years i will be " + (age + 10) + " years old");

Логиката е както следва, въвеждаш си рожденната дата. Вадиш я от сегашната дата и прибавяш 10.








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