
Rozdíl dvou časů v C Vyřešeno
- JayCube
- Level 1.5
- Příspěvky: 106
- Registrován: srpen 11
- Bydliště: Sedlec-Prčice
- Pohlaví:
- Stav:
Offline
Rozdíl dvou časů v C
Zdravim, potřeboval bych poradit s domácím úkolem. Musím napsat program v C, ve kterém potřebuji zjistit rozdíl dvou zadaných časů. Samozřejmě mě napadlo ty časy od sebe odečíst, jenže problém nastane, když je tam přechod přes půlnoc (např. 23:00 a 01:00). V tom případě odečtení nefunguje. Potřeboval bych poradit nějaký způsob, jak to udělat, aby to fugovalo univerzálně - jak pro časy v rámci jednoho dne, tak i pro ten přechod přes půlnoc (s tím údajem budu potom dál pracovat). A prosím žádné šílenosti, v programování jsem začátečník
.

CPU: Intel Core i5-4460 + GELID Tranquillo MB: MSI B85-G43 RAM: Crucial Ballistix Sport 8GB GK: Palit GTX 1060 JetStream SSD: Crucial MX100 128GB HDD: WD Caviar Blue 250GB ZDROJ: Seasonic SS-500ET-F3 500W CASE: Zalman R1 OS: Windows 7 Home Premium MONITOR: Iiyama ProLite X2483HSU
Re: Rozdíl dvou časů v C
A co kdyby sis k tomu času jeden den přidal, a po odečtení udělal modulo 24 hodin?
V C je na to operátor %.
V C je na to operátor %.
"Král Lávra má dlouhé oslí uši, král je ušatec!
(pravil K. H. Borovský o cenzuře internetu)
(pravil K. H. Borovský o cenzuře internetu)
- JayCube
- Level 1.5
- Příspěvky: 106
- Registrován: srpen 11
- Bydliště: Sedlec-Prčice
- Pohlaví:
- Stav:
Offline
Re: Rozdíl dvou časů v C
Jenže v tom případě program neví, kdy má ten den přidávat a kdy ne (ale možná jsem tvoji radu špatně pochopil
).
Ale díky tvojí radě mě napadlo tohle (časy jsou v minutách):
Nevím, jestli je to ideální řešení, ale zkusil jsem ten program odevzdat a dostal jsem plný počet bodů. Takže děkuji za radu
.

Ale díky tvojí radě mě napadlo tohle (časy jsou v minutách):
Kód: Vybrat vše
if( cas1 > (cas2 + 12*60) )
rozdil = ( (cas2 + 24*60) - cas1 );
else if( cas2 > (cas1 + 12*60) )
rozdil = ( cas2 - (cas1 + 24*60) );
else
rozdil = cas2 - cas1;
Nevím, jestli je to ideální řešení, ale zkusil jsem ten program odevzdat a dostal jsem plný počet bodů. Takže děkuji za radu

CPU: Intel Core i5-4460 + GELID Tranquillo MB: MSI B85-G43 RAM: Crucial Ballistix Sport 8GB GK: Palit GTX 1060 JetStream SSD: Crucial MX100 128GB HDD: WD Caviar Blue 250GB ZDROJ: Seasonic SS-500ET-F3 500W CASE: Zalman R1 OS: Windows 7 Home Premium MONITOR: Iiyama ProLite X2483HSU
Re: Rozdíl dvou časů v C Vyřešeno
Buď můžeš použít podmínku nebo to přičítat při každém výpočtu, to modulo ti to v každém případě ořízne pod 24 hodiny. Totéž pak samozřejmě platí i pro minuty, kde ale musíš nejdřív ověřit, jestli ti nepřidají hodinu:
Ale jde to jen pokud počítáš přechod z jednoho dne do druhého
Kód: Vybrat vše
hod = (kon_hod + 24 - poc_hod) % 24;
Ale jde to jen pokud počítáš přechod z jednoho dne do druhého

"Král Lávra má dlouhé oslí uši, král je ušatec!
(pravil K. H. Borovský o cenzuře internetu)
(pravil K. H. Borovský o cenzuře internetu)
- JayCube
- Level 1.5
- Příspěvky: 106
- Registrován: srpen 11
- Bydliště: Sedlec-Prčice
- Pohlaví:
- Stav:
Offline
Re: Rozdíl dvou časů v C
Aha! už jsem to pochopil.
Moc děkuji za pomoc.

CPU: Intel Core i5-4460 + GELID Tranquillo MB: MSI B85-G43 RAM: Crucial Ballistix Sport 8GB GK: Palit GTX 1060 JetStream SSD: Crucial MX100 128GB HDD: WD Caviar Blue 250GB ZDROJ: Seasonic SS-500ET-F3 500W CASE: Zalman R1 OS: Windows 7 Home Premium MONITOR: Iiyama ProLite X2483HSU
-
- Mohlo by vás zajímat
- Odpovědi
- Zobrazení
- Poslední příspěvek
-
-
Jaký z těchto dvou notebooků vybrat?
od Speed_dead » 10 říj 2024 21:49 » v Rady s výběrem hw a sestavením PC - 11
- 1968
-
od Speed_dead
Zobrazit poslední příspěvek
12 říj 2024 21:07
-
Zpět na “Programování a tvorba webu”
Kdo je online
Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 4 hosti