Rad sa vremenom i datumima u programiranju je od ključnog značaja za mnoge aplikacije, kao što su sistemi za evidenciju, kalendari, planeri i slično. Ovde ćemo se baviti načinima za rad sa vremenom u C# jeziku koristeći strukturu DateTime.


Značaj rada sa vremenom

Mnoge aplikacije zahtevaju precizno evidentiranje trenutnog vremena, trajanja događaja, računanje datuma ili vreme u različitim vremenskim zonama. Pomoću strukture DateTime u jeziku C# moguće je jednostavno:

  • Prikazati trenutni datum i vreme.
  • Manipulisati datumima i vremenom (dodavanje ili oduzimanje dana, sati, minuta).
  • Formatirati datume u različitim stilovima.
  • Porediti datume i vremena.

Struktura DateTime se koristi za to (i mnogo drugih primera).


Struktura DateTime

DateTime je strukturisani tip podataka u C# koji se koristi za rad sa datumom i vremenom. Predstavlja datum i vreme kao jedinstvenu celinu, ali može biti korišćen samo za manipulaciju datumom ili samo ya manipulaciju vremenom. Ova struktura sadrži mnogo ugrađenih metoda i svojstava za rad sa vremenom i datumom..

Ključna svojstva strukture DateTime:

  1. Now: Vraća trenutni datum i vreme.
  2. Today: Vraća trenutni datum sa vremenom postavljenim na ponoć (00:00:00).
  3. Day, Month, Year: Vraćaju dan, mesec i godinu datuma.
  4. Hour, Minute, Second: Vraćaju sate, minute i sekunde vremena.
  5. DayOfWeek: Vraća dan u nedelji (kao enumeraciju).
  6. DayOfYear: Vraća redni broj dana u godini za dati datum.

Ključne metode strukture DateTime:

  1. AddDays(double value): Dodaje navedeni broj dana datumu.
  2. AddHours(double value): Dodaje navedeni broj sati.
    • AddMonths(int months): Dodaje navedeni broj meseci.
    • AddYears(int value): Dodaje navedeni broj godina.
  3. ToString(string format): Formatira datum i vreme u zadatom formatu.
    • ToShortDateString(): Pretvara datum u kratki format (npr. 22.01.2025).
    • ToLongDateString(): Pretvara datum u dugi format (npr. sreda, 22. januar 2025).
  4. Subtract(DateTime value): Oduzima dva datuma i vraća vremenski interval.
  5. Compare(DateTime t1, DateTime t2): Upoređuje dva datuma.

Formati datuma i vremena

U C#, datum i vreme se mogu formatirati koristeći standardne ili prilagođene formate:

  • Standardni formati:
    • d za kratki datum (npr. 22.01.2025).
    • D za dugi datum (npr. sreda, 22. januar 2025).
    • T za kratko vreme (npr. 14:35).
    • F za puni format datuma i vremena (npr. sreda, 22. januar 2025. 14:35:22).
  • Prilagođeni formati:
    • dd/MM/yyyy za datum u formatu dan/mesec/godina.
    • HH:mm:ss za vreme u formatu sati:minute:sekunde.

Primeri

Primer 1: Prikaz trenutnog datuma i vremena
        DateTime sada = DateTime.Now;
        Console.WriteLine("Trenutni datum i vreme: " + sada);

// prikaz samo današnjeg datuma:
DateTime danas = DateTime.Today; Console.WriteLine("Današnji datum: " + danas.ToShortDateString());
Primer 2: Dodavanje dana i sati
        DateTime sutra = danas.AddDays(1);
        DateTime zaSatVremena = DateTime.Now.AddHours(1);

        Console.WriteLine("Današnji datum: " + danas.ToShortDateString());
        Console.WriteLine("Sutra: " + sutra.ToShortDateString());
        Console.WriteLine("Za sat vremena: " + zaSatVremena.ToShortTimeString());

// dodati promenljivu juce = DateTime.AddDays(-1)
Primer 3: Formatiranje datuma
        Console.WriteLine("Kratki datum: " + sada.ToString("d"));
        Console.WriteLine("Dugi datum: " + sada.ToString("D"));
        Console.WriteLine("Vreme: " + sada.ToString("T"));
        Console.WriteLine("Prilagođeni format: " + sada.ToString("dd.MM.yyyy. HH:mm"));

Primer 4: Poređenje datuma
        // opcija 1:

DateTime prviDatum = new DateTime(2025, 1, 22); DateTime drugiDatum = new DateTime(2025, 1, 25); int rezultat = DateTime.Compare(prviDatum, drugiDatum); if (rezultat < 0) Console.WriteLine("Prvi datum je pre drugog."); else if (rezultat == 0) Console.WriteLine("Datumi su isti."); else Console.WriteLine("Prvi datum je posle drugog.");


// opcija 2: uporediti promenljive danas, juce i sutra

Primer 5: Prikaz dana u nedelji
  
Console.WriteLine("Današnji dan u nedelji: " + danas.DayOfWeek);

Zadaci za vežbu:

  1. Računanje rođendana: Napisati program koji pita korisnika za datum rođenja i izračunava koliko ima dana do sledećeg rođendana.

  2. Izračunavanje starosti: Napisati program koji traži od korisnika datum rođenja i izračunava njegovu starost u godinama, mesecima i danima.

  3. Dan u nedelji: Napisati program koji omogućava korisniku da unese datum, a zatim prikazuje koji je dan u nedelji za taj datum.

  4. Razlika između datuma: Napisati program koji traži dva datuma od korisnika i prikazuje razliku između njih u danima.

  5. Formatiranje vremena: Napisati program koji trenutno vreme prikazuje u različitim formatima, uključujući prilagođene.

  6. Dodavanje vremena: Napisati program koji korisnika pita koliko dana, sati i minuta želi da doda trenutnom vremenu, a zatim prikazuje rezultat.

  7. Dodavanje godina: Napisati program koji traži trenutni datum i dodaje 5 godina, a zatim prikazuje novi datum.



Last modified: Thursday, 20 February 2025, 3:02 PM