private static bool PrelaziPonocaXkrajPrograma(Emisija emisija, TvProgram program) { DateTime datum; if (program.GetKrajPrikazivanja() == DateTime.MinValue) { datum = new DateTime( emisija.GetVrijemePrikazivanja().Year, emisija.GetVrijemePrikazivanja().Month, emisija.GetVrijemePrikazivanja().AddDays(1).Day, 0, 0, 0); } else { datum = new DateTime( emisija.GetVrijemePrikazivanja().Year, emisija.GetVrijemePrikazivanja().Month, emisija.GetVrijemePrikazivanja().AddDays(0).Day, program.GetKrajPrikazivanja().Hour, program.GetKrajPrikazivanja().Minute, 0); } TimeSpan timespan = datum - emisija.GetVrijemePrikazivanja() .AddMinutes(emisija.GetTrajanje()); if (timespan.TotalMinutes < 0) { return(true); } else { return(false); } }
private static DateTime DohvatiVrijemeEmisijuMoguceUbacitiNakonZadnjeEmisije( IComponentRaspored dan, int trajanje, TvProgram program) { DateTime vratiDatum = DateTime.MinValue; List <IComponentRaspored> sortiranDan = dan.GetChildList().OrderBy (o => o.GetVrijemePrikazivanja()).ToList <IComponentRaspored>(); DateTime krajZadnjeEmisije = new DateTime(); krajZadnjeEmisije = sortiranDan[sortiranDan.Count - 1].GetVrijemePrikazivanja() .AddMinutes(sortiranDan[sortiranDan.Count - 1].GetTrajanje()); DateTime krajPrograma = new DateTime(); krajPrograma = program.GetKrajPrikazivanja(); if (krajPrograma == DateTime.MinValue) { if (!PrelaziPonoca(krajPrograma, trajanje)) { vratiDatum = krajZadnjeEmisije; return(vratiDatum); } } else { if (krajZadnjeEmisije.AddMinutes(trajanje) <= krajPrograma) { vratiDatum = krajZadnjeEmisije; return(vratiDatum); } } return(vratiDatum); }
private static List <DateTime> PronadiKrajeveZadnjihEmisija(TvProgram program) { List <DateTime> listaKrajevaZadnjihEmisija = new List <DateTime>(); for (int i = 0; i < program.GetTjedan().Count; i++) { var sortiranDan = program.GetTjedan()[i].GetChildList().OrderBy (o => o.GetVrijemePrikazivanja()).ToList <IComponentRaspored>(); if (sortiranDan.Count == 0) { listaKrajevaZadnjihEmisija.Add(program.GetKrajPrikazivanja()); } else { listaKrajevaZadnjihEmisija.Add( sortiranDan[sortiranDan.Count - 1].GetVrijemePrikazivanja() .AddMinutes(sortiranDan[sortiranDan.Count - 1].GetTrajanje())); } } return(listaKrajevaZadnjihEmisija); }