WCM Forum

WCM Forum (http://www.wcm.at/forum/index.php)
-   Programmierung (http://www.wcm.at/forum/forumdisplay.php?f=17)
-   -   c - zeitformat - zeitrechnen (http://www.wcm.at/forum/showthread.php?t=117054)

Bastet 28.11.2003 23:15

c - zeitformat - zeitrechnen
 
jaa - schon wieder ne frage!

zeitformat richtig umändern z.b. 45 st 78 min 110 sek auf 1 tag 22 std 19 min und 50 sek

min= min +sek/60 (ist vorgegeben gewesen)

sek=* sek % 60
std= std + min /60 (stimmt)
min*= min + sek /60

std= std % 24 (ist auch vorgegeben)

frage stimmt sek* und min*?:rolleyes:

K@sperl 29.11.2003 00:00

sek=* sek % 60 stimmt nicht IIRC, sondern
sek *= sek % 60 wäre syntaktisch richtig

das würde aber dann sek = sek * (sek % 60) heißen, weiß nicht ob du das willst ;)

Bastet 29.11.2003 00:21

Zitat:

Original geschrieben von K@sperl
sek=* sek % 60 stimmt nicht IIRC, sondern
sek *= sek % 60 wäre syntaktisch richtig

das würde aber dann sek = sek * (sek % 60) heißen, weiß nicht ob du das willst ;)

nö hab die * nur gemacht damits leichter zu identifizieren ist.
(sterndal gehört nicht dazu)

hätte auch:

sek= sek % 60 /* ist dass richtig */ schreiben können ...

Bastet 29.11.2003 01:08

so nochmal, da ich blöderweise ein * zum markieren genommen habe und einige glaubten es seien operatoren. (jaja schon gut - schlagts mich)

zeitformat richtig umändern 45 st 78 min 110 sek auf 1 tag 22 std 19 min und 50 sek

min= min +sek/60 /* ist vorgegeben gewesen */

sek= sek % 60 /* stimmt dass? */
std= std + min /60 /* stimmt */
min= min + sek /60 /*stimmt dass? */

std= std % 24 /* ist auch vorgegeben */

frage stimmt sek und min?

kikakater 30.11.2003 01:38

Zitat:

Original geschrieben von Bastet
min= min +sek/60 /* ist vorgegeben gewesen */

sek= sek % 60 /* stimmt dass? */
std= std + min /60 /* stimmt */
min= min + sek /60 /*stimmt dass? */

std= std % 24 /* ist auch vorgegeben */

frage stimmt sek und min?

Code:

min+= sek / 60; sek%= 60;

std+= min / 60; min%= 60;

tag+= std / 24; std%= 24;

mfg Kikakater

zed 30.11.2003 12:23

@bastet


bitte keine "* irgendwas" mehr als markierung verwenden. damit bist leicht in pointer operationen. dachte zuerst auch was soll die zuweisung dort...


und entweder ist es eine normale division ( / ) oder ein modulo ( % ). bitte auch nicht verwechseln da sehr unterschiedlich

Bastet 01.12.2003 19:12

jaaaaaaa, danke *schäm* mittlerweile auch weiss (keine operatoren, als kennzeichnung) - blöder n00b fehler :o

@Kikakater

naja, ist leider nicht richtig (lt. beispiel ;) aber wir wissen ja schon, dass es viele verschiedene lösungen zu nem problem geben kann )... bei der aufgabe waren dinge vorgegeben, du hattest nur ein feld nach dem = wo du die antwort eintragen konntest, wobei ich 3 richtig hatte... fragt sich nur wie die letzte richtige antwort lautet?

min = min + sek / 60

sek = sek % 60
std = min + min /60
min =

std = std % 24

kikakater 02.12.2003 00:45

Zitat:

Original geschrieben von kikakater
Code:

min+= sek / 60; sek%= 60;

std+= min / 60; min%= 60;

tag+= std / 24; std%= 24;

mfg Kikakater

@Bastet

Nochmal kurz zum Mitdenken:

1a) eine Stunde besteht aus 60 Minuten
1b) die Variable "std" (=Stundenanzahl) wird um "min" / 60 (=ganzahlige Stunden innerhalb der Variablen "min") erhöht.
1c) danach wird "min" auf den Rest der Division durch 60 gesetzt ( min%= 60; ).

2a) ein Tag besteht aus 24 Stunden
2b) die Variable "tag" (=Tagesanzahl) wird um "std" / 24 (=ganzzahlige Tage innerhalb der Variablen "std") erhöht.
2c) danach wird "std" auf den Rest der Division durch 24 gesetzt ( std%= 24; ).



Korrekt ! min = min + sek / 60

Korrekt ! sek = sek % 60
Falsch ! std = min + min /60
müsste heißen: std = std + min / 60;
Was ist das ? -> min =

Korrekt ! std = std % 24, aber bitte vorher eine Anweisung einfügen: tag = tag + std / 24; (falls die Anzahl der Tage auch noch eine Rolle spielt).

außerdem die Semikolons nicht unterschlagen !!!

siehe Anweisung/Zuweisung ;

Bastet 02.12.2003 09:44

sorry, vom ganzen hinschreiben hab ich mich beim letzten posting verschrieben:

ich hab mitgedacht ;) - ich habs so beim test hingeschrieben, aber wieso behaupten die dass mein eintrag bei den minuten falsch ist??
(nein, den tag konntest du nicht eintragen und den strichpunkt auch nicht... deshalb bin ich ja verwirrt, weil wenns so sein soll, dann müssen die min auch richtig sein, schön langsam glaub ich dass die ne falsche lösung haben :mad: )

min= min +sek/60

sek= sek % 60
std= std + min /60
min= min + sek /60

std= std % 24


vergiss es, ich wollte nur wissen ob ich nen denkfehler habe, wenn aber mehrere leute sagen es stimmt, dann werd ich denen jetzt eine saftige email schicken - die sollen gefälligst nachprüfen was sie selber als antwort haben :ms:

kikakater 02.12.2003 14:16

Alles klar, viel Vergnügen und Einsicht weiterhin, jeder macht Fehler, es ist wichtig, sich etwas erklären zu lassen.

mfg Kikakater :)


Alle Zeitangaben in WEZ +2. Es ist jetzt 13:30 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag