Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

Korisnik unosi vreme, provera da li je unetoVreme == trenutnoVreme

  • 16 odgovora
  • 5.632 pregleda

Najnovija ↓

Korisnik unosi vreme, provera da li je unetoVreme == trenutnoVreme 29.12.2012. u 15:07 · pre 168 meseci #1
Cao :D, pokusavam da uradim neki programcic u C# za gasenje racunara, na osnovu podataka koje korisnik odabere.

Podaci su sledeci:
>> bira se datum, i tu proveravam da li je taj izabrani datum - danasnji datum, ako jeste, uradi to i to....
>> unosi se vreme, isti princip kao i za datum...

E sad, datum sam ok uradio, bar tako mislim, ali vreme ne znam kako, evo koda pa bi mi dobro dosla neka pomoc, sugestija:

Code:

 if (monthCalendar1.SelectionRange.Start.ToShortDateString() == DateTime.Now.ToShortDateString())    //ovako proveravam izabran datum
       .....

 if ((sati + ":" + minuti) == DateTime.Now.ToShortTimeString())      //vreme naravno nece ovako, "(sati + ":" + minuti)" je bezveze...Pomoc
      .....



Hvala :D
Re: Korisnik unosi vreme, provera da li je unetoVreme == trenutnoVreme 29.12.2012. u 23:52 · pre 168 meseci #3
Ovo neće raditi ako se program koristi prepodne. Ali bilo bi zanimljivo videti prijavu bug-a za ovaj kod ("Radi popodne, ali prepodne nešto neće" :) ).

Da bi ovo radilo pogledaj malo http://msdn.microsoft.com/en-u...ystem.datetime_properties.aspx pa uporedi promenljivu 'sati' sa DateTime.Now.Hour, minute sa minutima itd. Bolje nego da porediš stringove. Isto tako bi za datum mogao da uradiš. Takođe bi trebalo da osiguraš da porediš iste vremenske zone.
Sviđa mi se1
Re: Korisnik unosi vreme, provera da li je unetoVreme == trenutnoVreme 30.12.2012. u 11:46 · pre 168 meseci #4
Da, skontao sam da ne radi prepodne, pa sam uradio ovako:

Code:

 string prepodne = (sati + ":" + minuti + " AM").ToString();              //za prepodne
 string poslepodne = (sati + ":" + minuti + " PM").ToString();           //za poslepodne
 string danas = DateTime.Now.ToShortTimeString();

 if (prepodne == danas || poslepodne == danas && (monthCalendar1.SelectionRange.Start.ToShortDateString() == DateTime.Now.ToShortDateString()))
     ...


Ali i dalje mi baguje, recimo ako su minute manje od 10, to se na racunaru oznacava kao 01,02....Tu nulu nece da mi ocita kako treba, pa izgleda da moram i nju u string da ukljucim (ako su minute < 10...)

Nesto "prljavo" deluje kod, mora to nekako drugacije..

Zanima me da li je moguce da mi korisnik izabere vreme, kao sto moze datum, nesto kao sat ili tako nesto, trazio sam al ne vidim tu opciju u toolbox-u.
Re: Korisnik unosi vreme, provera da li je unetoVreme == trenutnoVreme 30.12.2012. u 12:18 · pre 168 meseci #5
Mislim da si ti to debelo omanuo. Umesto da se bakćeš sa stringovima, drži datum i vreme u datetime i onda to poredi ko čovek.
Potpis
http://pedja.supurovic.net - http://wireless.uzice.net - Besplatni .RS domeni - Mikrotik uputstva - YT9TP - OpenStreetMap Srbija
Re: Korisnik unosi vreme, provera da li je unetoVreme == trenutnoVreme 30.12.2012. u 16:54 · pre 168 meseci
izmenjeno 1 put, poslednji put Dejan Carić 30.12.2012. u 17:16
  1. Dejan Carić30.12.2012. u 17:16zapis iz teksta poruke
#9
Zar nije najlakše ovako ?
Code:
public bool IsCurrentTime(DateTime date)
{
    return date.ToString("yyyyMMddHHmm") == DateTime.Now.ToString("yyyyMMddHHmm");
}

Primena:

Code:
var shutdownTime = new DateTime(....); // pokupiš vrednosti sa svih kontrola
...
if (IsCurrentTime(shutdownTime))
{
    ... // kod za gašenje računara
}
Potpis
gramatika srpskog jezika
testovi iz srpskog jezika
jezičke nedoumice
Re: Korisnik unosi vreme, provera da li je unetoVreme == trenutnoVreme 30.12.2012. u 20:00 · pre 168 meseci
izmenjeno 1 put, poslednji put Marko Simulak 30.12.2012. u 20:30
  1. Marko Simulak30.12.2012. u 20:30zapis iz teksta poruke
#10
Uf, ovako...poredio sam godinu, mesec, vreme => sve posebno...

Radi, rekao bih ok, s tim sto nije jos sve gotovo, ovo sam samo isprobavao.

Ostalo mi je jos da uradim da "program ceka", tj kada se unese npr: 19:54, a sada je 19:50...da saceka te 4 minute, i tek onda da uradio ono sto treba...Mislim to sa nekim timerom da uradim, ne znam jos, videcu...

Evo u sustini kako izgleda programcic.. User: Marko, Pass:1234

A da...program radi u backgroundu, videcete vec...
Re: Korisnik unosi vreme, provera da li je unetoVreme == trenutnoVreme 07.02.2013. u 17:07 · pre 167 meseci #11
Pozdrav :D, potrebna mi je mala pomoc oko programa. Uradio sam ono staro, i radi sve ok, ali sad me muci nesto novo. Treba da imam 1 checkbox i ako je otkacen radi unetu vrednos SVAKI DAN, a ako ne, samo za danas. Ono sto treba da uradi jeste da ugasi racunar nakon odredjenog vremene, tj korisnik unese koliko vremena racunar moze da radi (npr. 2 sata), i kada isteknu ta 2 sata, program treba da ugasi komp. To nije problem, ali ukoliko korisnik koristi komp recimo 1h, i nakon toga ga ugasi pa nakon nekog vremena ponovo upali, program treba da NASTAVI sa odbrojavanjem, tj. da ugasi komp za 1h.

Pokusao sam da uradim kreiranjem registry kljuca, a vrednos kljuca predstavlja to uneto vreme. Onda idem kroz tajmer, i kada dodje do 0, gasi!

Ali...ne znam kako da se nakon ponovnog paljenja nastavi odbrojavanje preostalog vremena.

Malo je sve konfuzno, nadam se da cete razumeti ovo sto je napisano :D

Hvala.
Re: Korisnik unosi vreme, provera da li je unetoVreme == trenutnoVreme 07.02.2013. u 17:36 · pre 167 meseci #13
@marko
mislim da nisi dobro postavio problem.

Sa tvojom funkcionalnoscu (da gasis komp nakon 2h neprekidnog rada kompa) em pravis sebi komplikaciju, em bravis beskorisnu funkcionalnost.

Opcija da se ugasi komp za 2h, treba da gleda apsolutno vreme (ne samo vreme dok radi komp). Time se problem zapravo svodi da se postavi alarm za gasenje u trenutku : datetime.now+2h


Ako i dalje ostajes pri misljenju da treba da gledas samo vreme dok radi komp, onda treba da drzis neki fajl sa brojacem, i da na svaku sekundu inkrementiras/dekrementiras brojac u fajlu (u memoriji ne smes da drzis, jer ces izgubiti podatak ako se resetuje komp).

Najjednostavnije ti je da dignes timer koji ce da radi:

onEverySec(...){
bool ugasi = false;

// deo za gasenje posle nekog intervala
//dekrementiraj brojac u fajlu
// if (brojac<=0) delete(fajl), ugasi = true;

// deo za gasenje u nekom trenutku
// if (datetime.now ispunjava uslov za gasenje)
// ugasi = true;

// if(ugasi) execute("shutdown -h now")

}
}



Re: Korisnik unosi vreme, provera da li je unetoVreme == trenutnoVreme 07.02.2013. u 18:23 · pre 167 meseci
izmenjeno 1 put, poslednji put Marko Simulak 07.02.2013. u 18:39
  1. Marko Simulak07.02.2013. u 18:39zapis iz teksta poruke
#14
DateTime.Now sam koristio za ovo prethodno...Nasao sam neko resenje, radi.

Trebalo bi da promenim izgled programa, ne dopada mi se ovako...ali cu nekom drugom prilikom da se igram s tim.

Evo kako to sve izgleda, ako neko uvidi nesto sto nije kako treba, sto bih mogao da popravim, neka kaze.

Hvala :D

A da... User: Marko Pass: 1234
Re: Korisnik unosi vreme, provera da li je unetoVreme == trenutnoVreme 08.02.2013. u 13:17 · pre 167 meseci #16
Program se zatvori, tako da ni ne ugasi kad treba. Mada, ima dosta propusta, videcu da ga osiguram sto je moguce vise...Trenutno smisljam kako bih mogao da mu namestim, tj. popravim vizuelni izgled, i jos uvek nisam uradio da ako je checkbox otkacen da radi to svaki dan...
Re: Korisnik unosi vreme, provera da li je unetoVreme == trenutnoVreme 05.04.2013. u 01:16 · pre 165 meseci #17
I ja smatram da je jedini način da pišeš negdje vrijednosti i pri pokretanju da provjeriš odma tu vrijednost, ako se računar ugasio programski u fajlu je vrijednost 0, ako nije, vrijednost koju pišeš svakih 5 sekundi otvaraš automatski pri pokretanju i nastavljaš odbrojavanje, staviš program da se pokreće u startup programima sistema.

Ako je program stalno u pozadini i ako svakih par sekundi provjerava vrijednost iz nekog fajla, mogao bi da staviš još jedan red u taj fajl tako da ako je checkbox označen kad se pokrene danas program upiše se sutrašnji datum i vrijeme gašenja računara. Kada se program sutra pokrene, vrijednost se zamjenjuje danom poslije toga i tako. Praktički datum uvećavati za jedan više od trenutnog svaki put, pamtiti vrijeme kada treba da se ugasi i to je praktički to, onda samo izvršavati gašenje kada trenutna vrijednost bude jednaka vrijednosti u fajlu.

Valjda ćeš imati neke koristi od moje ideje.
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme