» »

[C#] današnji datum in rojsni datum

[C#] današnji datum in rojsni datum

krastača ::

Pozdravjleni!

Delam na sledeči nalogi

20. naloga: Napiši program, ki prebere tvoje ime in priimek, datum rojstva (za branje uporabiDateTime.Parse(Console.ReadLine()), datum pa vpiši npr. s pikami, vejicami ali poševnicami v desno med dnevi, meseci in letom) ter izpiše:

;Pozdravljen ime priimek. Danes si star x dni.

Na mesto, označeno z x, izpiši število dni, ki je poteklo med vpisanim datumom rojstva in današnjim datumom.
Uporabi razliko dveh datumov: Console.WriteLine((DateTime.Today - datumRojstva).Days)


Problem nastane, ko moram izračunati dneve glede na svoj rojstni datum

A bi mi lahko nekdo razložil kako priti to teh dnevov, ki bi jih mogla z programom izračunati, če je moj rojsni datum (04.04.1979).
  • spremenilo: krastača ()

keworkian ::

Odšteješ datuma?
Obscenities in B-Flat

krastača ::

Če, bi blo to tako lahko :8) samo želi dneve ne letnico

KernelPanic ::

Torej, oba datuma moras spraviti na "skupni imenovalec" ali "skupno enoto", kar je v tvojem primeru DAN. Za vsako leto ves, koliko mesecev ima ter za vsak mesec ves, koliko dni ima. Nato si postavi nek zacetni datum (npr. 1.1.1800), izracunaj stevilo dni od zacetnega datuma do tvojega datuma rojstva ter stevilo dni od zacetnega datuma do danasnjega datuma. Nato odstejes stevilo dni datuma rojstva od danasnjega datuma in imas podatek. Ob zacetku moras se preveriti, ali je rojstni datum seveda manjsi od danasnjega (da ne bos dobil negativnega stevila dni).

Lp,
Marko

keworkian ::

krastača je izjavil:

Če, bi blo to tako lahko :8) samo želi dneve ne letnico


Na mesto, označeno z x, izpiši število dni, ki je poteklo med vpisanim datumom rojstva in današnjim datumom.
Uporabi razliko dveh datumov: Console.WriteLine((DateTime.Today - datumRojstva).Days)


Kje je tle problem?
Obscenities in B-Flat

krastača ::

Predstavljaj si nekoka, ki se je komaj naučil kako se datumi izpsujejo za izpis v programu te veš kje sem in zakaj morda za nekoga neumno vprašujem. Problem je, da prvi del še spravim skup drugi del pa ne vem kako se ga lotiti kljub usmeritvam naloge :8)

darkolord ::

Ampak za drugi del imaš že napisano rešitev...

KernelPanic ::

krastača je izjavil:

Predstavljaj si nekoka, ki se je komaj naučil kako se datumi izpsujejo za izpis v programu te veš kje sem in zakaj morda za nekoga neumno vprašujem. Problem je, da prvi del še spravim skup drugi del pa ne vem kako se ga lotiti kljub usmeritvam naloge :8)
Ravno zato ti pa ne moremo podati celotne resitve, samo vodimo te. Torej, v razredu DateTime imas operator "-", ki ti vrne razred TimeSpan, v katerem imas razliko datumov:
TimeSpan ts=DateTime.Now-dtRojstniDan;
Nato ta TimeSpan ts enostavno pretvoris v stevilo dni:
double dSteviloDni=ts.TotalDays;

feryz ::

Če je to res tvoj rojstni dan in če res delaš na takih nalogah, je človeku preprosto nepredstavljivo, da se ti ustavi na tako banalnem "problemu".
Je pa zanimivo, kako se razlikujejo odgovori "tapametnih" forumašev na neumna vprašanja, glede na spol.
Če bi šlo za možakarja, bi ga vsi opljuvali, ko pa nanjušijo pi..o, se lepo umirjeno trudijo.
Je..š tako emancipacijo, ki dela le v eno smer. Oz. kakor in kadar ji paše.

Zgodovina sprememb…

  • spremenil: feryz ()

KernelPanic ::

feryz je izjavil:

Če je to res tvoj rojstni dan in če res delaš na takih nalogah, je človeku preprosto nepredstavljivo, da se ti ustavi na tako banalnem "problemu".
Je pa zanimivo, kako se razlikujejo odgovori "tapametnih" forumašev na neumna vprašanja, glede na spol.
Če bi šlo za možakarja, bi ga vsi opljuvali, ko pa nanjušijo pi..o, se lepo umirjeno trudijo.
Je..š tako emancipacijo, ki dela le v eno smer. Oz. kakor in kadar ji paše.
Lol, a je baba? Nism vedu, prisezem. :D V vsakem primeru sm hotu kurcat zdele. :d No drgac pa, sm bil jaz tudi zacetnik, pa sem spraseval t.i. neumnost. Moje mnenje je, da neumnih vprasanj ni, skrivanje neznanja pa je neumno. Drgac pa, kar se posta tice, krastaca, uporabi msdn za taksne stvari ...

Zgodovina sprememb…

krastača ::

Bom tako dolgo gruntala, da bom pogrumntala, če ne pa postam svojo obliko programa tu, da me skritizirate. V googlu sem našla tudi par strani ker so uporabljali if, while ipd zanke a je to naloga kjer se naj nebi to uporabljalo.

"feryz" pred dvema tednoma, programiranja poznala nisem. Prešla sem 3 predavan in sedaj rešujem prvi sklop vaj, ki vsebujejo 20 nalog za(vhodne izhodne opearacije, spremenljivke, prirejanje, operatorji). To je prva naloga kjer moram zračunati število dni glede na rojsni dan in se s spremenljivkami (DateTime.Today, TimeSpam ind.) srečujem prvič.

"KernelPanic" hvala za usmeritev, kaj si pa mislil z msdn?

detroit ::

krastača mislim, da ti je kernel panic vse napisal ne samo usmeril te. MSDN je pa "so called help", ki bere iz lokalnih virov ali online.

Btw kateri faks uči c#? Samo zanima me glede na to da se pojavljajo govorice (neutemeljene sicer) o zatonu c# če ne celo .net zaradi win8.
Skero

black ice ::

detroit je izjavil:

Btw kateri faks uči c#? Samo zanima me glede na to da se pojavljajo govorice (neutemeljene sicer) o zatonu c# če ne celo .net zaradi win8.

FERI R-IT, verjetno tudi ITK.

Isotropic ::

kaj naj bi ga pa nadomestilo? ker jaz sem slisal, da bodo .net aplikacije portabilne na arm z samo recompilom (ce bodo mele samo st. knjiznico)

to je slucajno glede nekega internal struggle pri ms?

Zgodovina sprememb…

KernelPanic ::

krastača je izjavil:

Bom tako dolgo gruntala, da bom pogrumntala, če ne pa postam svojo obliko programa tu, da me skritizirate. V googlu sem našla tudi par strani ker so uporabljali if, while ipd zanke a je to naloga kjer se naj nebi to uporabljalo.

"feryz" pred dvema tednoma, programiranja poznala nisem. Prešla sem 3 predavan in sedaj rešujem prvi sklop vaj, ki vsebujejo 20 nalog za(vhodne izhodne opearacije, spremenljivke, prirejanje, operatorji). To je prva naloga kjer moram zračunati število dni glede na rojsni dan in se s spremenljivkami (DateTime.Today, TimeSpam ind.) srečujem prvič.

"KernelPanic" hvala za usmeritev, kaj si pa mislil z msdn?
Wtf, kako, kaj sem mislil z msdn? Jao boze mili, msdn ti je help za mircosoftove produkte, eden izmed njih je tudi c#. No, saj sem ti vse napisal madona, naredi, tako kot sem ti napisal!!!

krastača je izjavil:

Bom tako dolgo gruntala, da bom pogrumntala, če ne pa postam svojo obliko programa tu, da me skritizirate. V googlu sem našla tudi par strani ker so uporabljali if, while ipd zanke a je to naloga kjer se naj nebi to uporabljalo.

"feryz" pred dvema tednoma, programiranja poznala nisem. Prešla sem 3 predavan in sedaj rešujem prvi sklop vaj, ki vsebujejo 20 nalog za(vhodne izhodne opearacije, spremenljivke, prirejanje, operatorji). To je prva naloga kjer moram zračunati število dni glede na rojsni dan in se s spremenljivkami (DateTime.Today, TimeSpam ind.) srečujem prvič.

"KernelPanic" hvala za usmeritev, kaj si pa mislil z msdn?
Kako to mislis, naj se nebi to uporabljalo, ce hoces na zacetku preveriti smiselnost obeh datumov (rojstni dan mora biti manjsi od danasnjega, razmisli, zakaj), moras uporabiti if stavek. V programiranju ni tega "tega pa nismo jemali, torej tega ne rabim", uporabis vsa orodja, ki so ti na voljo, za cim bolj lagodno resitev problema!

Zgodovina sprememb…

bigbada ::

Sem nekaj na hitro rešil. Upam, da je to to, kar želiš.
using System;
using System.Collections.Generic;
using System.Text;

namespace vaja
{
    class Program
    {
        static void Main(string[] args)
        {   
            Console.WriteLine("Prosim vpisi ime in priimek:");
            string imeINpriimek = Console.ReadLine(); //prebere vrstico in jo shrani v string(niz znakov).
            Console.WriteLine("Vpiši svoj datum rojstva:");
            DateTime datumRojstva = DateTime.Parse(Console.ReadLine()); //prebere vrstico in jo pretvori v tip DateTime, ki jo nato shrani v spremenljivko datumRojstva
            //izpis na zaslon... izpise ime in priimek ter število dni, ki je potekalo od datuma rojstva do danes...to naredimo tako da današnji datum odštejemo od datuma rojstva in pretvorimo v dneve
            Console.WriteLine("Pozdravljen {0}. Danes si star {1} dni", imeINpriimek, (DateTime.Today - datumRojstva).Days);
            Console.ReadKey();
        }
    }
}

MSDN je knjižnica, ki ti ponuja tehnično dokumentacijo in ostalo kramo windows izdelkov (sem spada tud c#). Poglej si spodnji link. Zraven so primeri:
http://msdn.microsoft.com/en-us/library...

Zgodovina sprememb…

  • spremenilo: bigbada ()

Spura ::

Dvomim da bo sel C# v zaton, zame je to najboljsi jezik na trziscu danes.

broken/link ::

detroit je izjavil:


Btw kateri faks uči c#? Samo zanima me glede na to da se pojavljajo govorice (neutemeljene sicer) o zatonu c# če ne celo .net zaradi win8.


FRIjevci smo tudi vmes na UNI programu

detroit ::

@loki: nek blog je bil nimam linka oops
@ostali regarding faks in c#: thanks
@žaba: uči sine;)
Skero

Isotropic ::

se ti da malo pogooglat prosim? sem sicer tudi nekaj slisal glede com+...

Looooooka ::

Don't forget about leap years!.Tle ni nobene avtomatizacije :)

Zgodovina sprememb…

  • spremenilo: Looooooka ()

detroit ::

http://www.theregister.co.uk/2011/09/19...
http://www.theregister.co.uk/2011/11/10...

sm po emailu pobrsku

škoda za silverlight ker je preprosta in zanimiva zadeva
glede .net pa močno dvomim da bo šou papa ker imamo še server 2008, ado ipd ki se ga ne morejo kar losat. Če bomo pa vse v java skriptu delal pa dobro...bmk sm da bo:)
Skero

Isotropic ::

za tale slight sem slisal, da naj bi bil kar zanimiva zadeva, da so ga pa zajebali v verziji 2.0 (oz. novejsi verziji) oz. niso delali na njegovih mocnih straneh.

krastača ::

Glede zatona programskega jezika C# dvomim a nekateri strokovnjaki tega foruma bolj vedo o tej temi.

Oktobra sem se vpisala v B2 v Mariboru kjer pri Programiranju 1 zajemajo C#.

Hvala bigbada za podrobnosti in link (sem si zadevo shranila) in hvala ostali za potrpežljivost.

gendale ::

Looooooka je izjavil:

Don't forget about leap years!.Tle ni nobene avtomatizacije :)

DateTime sam poskrbi za to

http://msdn.microsoft.com/en-us/library... :
Operations by members of the DateTime type take into account details such as leap years and the number of days in a month.
seznam zanč moderatorjev in razlogov da so zanč
http://pastebin.com/QiWny5dV
gor je mavrik apple uporabniček (mali možgani in mali penis)

krastača ::

naloga rešena :)) - HVALA ZA POTRPEŽLJIVOST

program zasnovala tako:

namespace Naloga20
{
    class Naloga20
    {
        static void Main(string[] args)
        {
            string ime, priimek;
            ime = "xxxxxxxxx";
            priimek = "xxxxxxx";
            Console.Write("Vpiši svoj datum rojstva: ");
            DateTime datumRojsta = DateTime.Parse(Console.ReadLine());
            Console.WriteLine("Pozdravljena {1} {2} . Danes si stara {0} dni", ((DateTime.Today - datumRojsta).Days), ime, priimek);

            Console.ReadKey();
        }
    }
}


-- Dajte prosim st.koda uporabljati no.

Zgodovina sprememb…

  • spremenil: Mavrik ()

keworkian ::

a je blo tezko prepisat iz naloge?
Obscenities in B-Flat

krastača ::

Če neveš vrstni red prepisovanja te ti tudi prepis ne pomaga

krastača ::

A mi lahko nekdo razloži kako se to lahko zgodi eno minuto vse dela nato pa program zašteka pri

"DateTime datumRojsta = DateTime.Parse(Console.ReadLine());" celotni niz označi v rumeno ter napiše (String was not recognized as a valid DataTime.

Kako lahko eno minuto program dela potem več ne? 8-O

bigbada ::

Saj ti piše: "String was not recognized as a valid DataTime.".
Izgleda da si v konzolo vnesla nekaj neveljavnega.

"Because dates and times follow some rules for their formats, you should strive to let the user know how you expect the value to be entered."

krastača ::

Desno spodaj mi piše tole:

datumRojstva {1.1.0001 0:00:00} System.DateTime -

če probam ta datum popraviti v rojstni datum se datum spremeni na ta datum nazaj. Kako naj zadevo popravim?

Zgodovina sprememb…

  • spremenilo: krastača ()

bigbada ::

Nevem v čem je problem. Meni ta tvoj program deluje normalno. Ženske in pc :) Ziher si nekaj zbrkljala.

Looooooka ::

gendale je izjavil:

Looooooka je izjavil:

Don't forget about leap years!.Tle ni nobene avtomatizacije :)

DateTime sam poskrbi za to

http://msdn.microsoft.com/en-us/library... :
Operations by members of the DateTime type take into account details such as leap years and the number of days in a month.

Ma ni cist res.Zato pa mas kup user funkcij po netu, ki resujejo racunanje med datumi(ko te zanima koliko let,mesecev,dni,ur) je minilo od dolocenega datuma.
Tega NE pokriva.Probaj substract funkcijo na datetime objektu pa bos videl o cem govorim.
To more clovek sam resit :)

Btw...zakaj predvidevas, da bo uporabnik vpisal datum v pravilni obliki?...sej se zavedas, da je v osnovi to odvisno od sistemskih nastavitev in da bos mela problem ce bi ti recimo american sel vpisovati datum?
Mi mamo dan.mesec.leto ...oni mislim da so bolj navajeni na mesec.dan.leto itd.
V glavnem.Bad programming.Nikoli ne predvidevaj, da je uporabnik pameten.Vedno predvidevaj, da je teslo in da je vse kar napise mogoce narobe.Tako se ti ne bo nic sesulo.

Zgodovina sprememb…

  • spremenilo: Looooooka ()

darkolord ::

Ma ni cist res.
Kaj točno?

gendale ::

Looooooka je izjavil:

gendale je izjavil:

Looooooka je izjavil:

Don't forget about leap years!.Tle ni nobene avtomatizacije :)

DateTime sam poskrbi za to

http://msdn.microsoft.com/en-us/library... :
Operations by members of the DateTime type take into account details such as leap years and the number of days in a month.

Ma ni cist res.Zato pa mas kup user funkcij po netu, ki resujejo racunanje med datumi(ko te zanima koliko let,mesecev,dni,ur) je minilo od dolocenega datuma.
Tega NE pokriva.Probaj substract funkcijo na datetime objektu pa bos videl o cem govorim.
To more clovek sam resit :)


a si ziher, ker:
           Console.WriteLine((DateTime.Parse("2012-03-01") - DateTime.Parse("2012-02-20")).Days);
            Console.WriteLine((DateTime.Parse("2013-03-01") - DateTime.Parse("2013-02-20")).Days);

            Console.WriteLine((DateTime.Parse("2013-01-01") - DateTime.Parse("2012-01-01")).Days);
            Console.WriteLine((DateTime.Parse("2014-01-01") - DateTime.Parse("2013-01-01")).Days);

izpiše
10
9
366
365
seznam zanč moderatorjev in razlogov da so zanč
http://pastebin.com/QiWny5dV
gor je mavrik apple uporabniček (mali možgani in mali penis)

bigbada ::

DateTime sam poskrbi za prestopna leta.

KernelPanic ::

feryz je izjavil:

Če je to res tvoj rojstni dan in če res delaš na takih nalogah, je človeku preprosto nepredstavljivo, da se ti ustavi na tako banalnem "problemu".
Je pa zanimivo, kako se razlikujejo odgovori "tapametnih" forumašev na neumna vprašanja, glede na spol.
Če bi šlo za možakarja, bi ga vsi opljuvali, ko pa nanjušijo pi..o, se lepo umirjeno trudijo.
Je..š tako emancipacijo, ki dela le v eno smer. Oz. kakor in kadar ji paše.
Torej, krastaca, si zenskega ali moskega spola? :D

vojko20 ::

Namesto Days uporabi TotalDays.

Primer: če je razlika med datuma 2 meseca in 5 dni, bo days enak 5, total days pa okoli 66.


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

[VB] date regex

Oddelek: Programiranje
8849 (768) korenje3
»

[C#] Evidenca oseb

Oddelek: Programiranje
71163 (848) DaMachk
»

C# in DateTime

Oddelek: Programiranje
101360 (1180) FiDeK
»

[c#] Majhen problemček

Oddelek: Programiranje
101014 (822) darkolord
»

[C#] DateTime v bazo

Oddelek: Programiranje
51370 (1257) teac

Več podobnih tem