private Vreme vremeDolaska;
private Vreme vremeOdlaska;
private static double cenaPoSatu;
private double iznosZaNaplatu;
public Parkiranje(uint sat, uint minut, uint sekunda)
vremeDolaska.minut = minut;
vremeDolaska.sekunda = sekunda;
public Vreme VremeDolaska
get { return vremeDolaska; }
set { vremeDolaska = value; }
public Vreme VremeOdlaska
get { return vremeOdlaska; }
set { vremeOdlaska = value; }
get { return cenaPoSatu; }
set { cenaPoSatu = value; }
public double IznosZaNaplatu
get { return iznosZaNaplatu; }
public void ObracunajVremeParkiranja()
uint sekundePocetka = vremeDolaska.sat * 3600 + vremeDolaska.minut * 60 + vremeDolaska.sekunda;
uint sekundeKraja = vremeOdlaska.sat * 3600 + vremeOdlaska.minut * 60 + vremeOdlaska.sekunda;
iznosZaNaplatu = ((double)(sekundeKraja - sekundePocetka) / 3600 + 1) * cenaPoSatu;
static void ProveriFormatVremena(string vreme)
for (int i = 0; i < vreme.Length; i++)
throw new FormatException();
static Vreme KonvertujVreme(string stringVreme)
vreme.sat = Convert.ToUInt32(stringVreme.Substring(0, stringVreme.IndexOf(":")));
vreme.minut = Convert.ToUInt32(stringVreme.Substring(stringVreme.IndexOf(":") + 1, stringVreme.LastIndexOf(":") - stringVreme.IndexOf(":") - 1));
vreme.sekunda = Convert.ToUInt32(stringVreme.Substring(stringVreme.LastIndexOf(":") + 1));
static void ProveriVrednostiVremena(Vreme vreme)
if (vreme.sat > 24 || vreme.minut > 60 || vreme.sekunda > 60)
throw new ArgumentOutOfRangeException();
public static void Main()
Parkiranje park1 = new Parkiranje();
Console.WriteLine("Unesi vreme dolaska (format: h:m:s):");
vremeDolaska = Console.ReadLine();
Console.WriteLine("Unesi vreme odlaska (format: h:m:s):");
vremeOdlaska = Console.ReadLine();
Console.WriteLine("Unesi cenu po satu:");
park1.CenaPoSatu = Convert.ToDouble(Console.ReadLine());
ProveriFormatVremena(vremeDolaska);
ProveriFormatVremena(vremeOdlaska);
park1.VremeDolaska = KonvertujVreme(vremeDolaska);
park1.VremeOdlaska = KonvertujVreme(vremeOdlaska);
ProveriVrednostiVremena(park1.VremeDolaska);
ProveriVrednostiVremena(park1.VremeOdlaska);
park1.ObracunajVremeParkiranja();
Console.WriteLine("Iznos za naplatu: " + Math.Round(park1.IznosZaNaplatu, 2));
catch (FormatException ex)
Console.WriteLine("Greska u formatu podatka.\n" + ex.Message);
catch (ArgumentOutOfRangeException ex)
Console.WriteLine("Greska, uneto vreme se ne nalazi u odredjenom opsegu. Max. vrednosti su: 24:60:60.\n" + ex.Message);
Console.WriteLine("Doslo je do neke greske.\n" + ex.Message);