Hinweis: Das Forum wird geschlossen! Neue Registrierungen sind nicht mehr möglich!

 Zurück zu Pro-Linux   Foren-Übersicht   FAQ     Suchen    Mitgliederliste
Problem mit ctime und Zugabe von Sekunden zu time-t

 
Neuen Beitrag schreiben   Auf Beitrag antworten    Pro-Linux Foren-Übersicht -> Programmieren - C
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Neodym



Anmeldungsdatum: 28.07.2004
Beiträge: 12
Wohnort: Wien

BeitragVerfasst am: 29. Aug 2004 16:08   Titel: Problem mit ctime und Zugabe von Sekunden zu time-t

Hi!

um mich kurz zu fassen. Ich möchte zu time_t noch Sekunden hinzufügen,(zB. 86400 für einen Tag) damit mir ctime das Rechnen abnimmt.

Genau genommen möcht ich eine Klasse schreiben der ich eine Anzahl an Tagen übergebe und die mir einen String mit dem Datum zurück gibt. Ctime ist da zwar genau das richtige aber irgendwie schaffe ich es nicht die Sekunden zu time_t dazuzugeben, denn falls das geheeim compilierenn würde würde mir localtime dann das neue Datum ausgeben und ich bräuchte mich nicht darum kömmern welches Monat wir haben(28,29,30 oder 31 Tage) usw.

Probier heute schon 3 Stunden herum werde aber nicht schlauer oder ich steh wieder mal auf der Leitung (kommt beim mir öfter vor), aber wenn ich zB. schreiben

string Zeit::Datum(const int Tage )
{
time (&aZeit+Tage);
bZeit= localtime(&aZeit);

tag = bZeit->tm_mday;
monat = bZeit->tm_mon+1;
jahr = bZeit->tm_year+1900;

stringstream stringst;

stringst<<SF<<tag<<"."<<SF<<monat<<"."<<SF<<jahr<<ends;

return stringst.str();
}

dann haut er mir der Compiler soetwas raus:
error: invalid conversion from `int' to `time_t*'


Also wenn wer eine Idee hätte wär ich ihm Dankbar.

Wünsch noch einen schönen Sonntag aus Wien!

mfG Neodym
_________________
Der grösste Trick den der Teufel je gebracht hat, war der Menschheit glauben zu machen es gäbe ihn gar nicht.
 
Benutzer-Profile anzeigen Private Nachricht senden

_MP_
Gast





BeitragVerfasst am: 29. Aug 2004 20:13   Titel:

time() arbeitet nicht mit int sondern mit dem Datentyp time_t. Wenn du den zum Rechnen verwendest, sollte alles korrekt laufen (undsich compilieren lassen).

cu

MP

Das Linux Entwicklerforum
 

Neodym



Anmeldungsdatum: 28.07.2004
Beiträge: 12
Wohnort: Wien

BeitragVerfasst am: 30. Aug 2004 5:19   Titel: Re: _MP_

Hi, _MP_!

Mir war schonklar das ich time_t verändern muss, hab ich auch probiert einen neuen Wert von time_t zu erzeugen aber ich weis nicht genau wie ich das jetzt anstellen soll, habe in der man-Page von Ctime auch nicht viel über den Datentyp gefunden.
Also wie erstellt man einen time_t mit einen eigenen Sekundenwert?

Trotzdem Danke für den Hinweis!

mfG Neodym
_________________
Der grösste Trick den der Teufel je gebracht hat, war der Menschheit glauben zu machen es gäbe ihn gar nicht.
 
Benutzer-Profile anzeigen Private Nachricht senden

_MP_
Gast





BeitragVerfasst am: 31. Aug 2004 8:19   Titel:

Ähm was hindert dich denn, deinen Zahlenwert einfach zu der Variablen vom Typ time_t hinzuzuaddieren? AFAIR geht das problemlos, da hinter time_t auch nur ein (unsigned) int steckt.

Und wenn nicht, bleibt dir immer noch der Weg, time_t auf int-Variablen zuzuweisen, damit zu rechnen und dann das Ergebnis (mit Casting) an eine time_t Variable zu übergeben.

Ach ja, das hier

time (&aZeit+Tage);

ist natürlich völliger Unsinn, damit veränderst du die Adresse, in die der Zeit-Wert geschrieben wird. Schließlich enthält aZeit erst nach Ausführen von time() einen verwendbaren Zahlenwert. Korrekterweise sollte das so aussehen:

time (&aZeit);
aZeit+=Tage;

cu

MP

Das Linux Entwicklerforum
 

Neodym



Anmeldungsdatum: 28.07.2004
Beiträge: 12
Wohnort: Wien

BeitragVerfasst am: 31. Aug 2004 9:14   Titel: Re: _MP_

Hi _MP_!

Du hast natürlich recht das time(&Zeit+Tage) blödsinn ist(weis auch nicht mehr was ich mir dabei gedacht habe) und ich bin mittlerweil auch schon auf deine Lösung draufgekommen und zwar Zeit+=Tage; und dann erst den Aufruf time(&Zeit ) zu machen.

Na ja, aber aus Fehlern lernt man und ich hoffe das mir solche Fehler in Zukunft nicht merh passieren.

So, also Danke für deine Hilfe!

mfG Neodym
_________________
Der grösste Trick den der Teufel je gebracht hat, war der Menschheit glauben zu machen es gäbe ihn gar nicht.
 
Benutzer-Profile anzeigen Private Nachricht senden

_MP_
Gast





BeitragVerfasst am: 31. Aug 2004 10:52   Titel: Re: _MP_

Neodym hat folgendes geschrieben::
Na ja, aber aus Fehlern lernt man und ich hoffe das mir solche Fehler in Zukunft nicht merh passieren.


Keine Angst, da finden sich ganz gewiss andere Fehler Wink

cu

MP

http://www.linuxboard.org - das Linux Entwicklerforum
 

Beiträge vom vorherigen Thema anzeigen:   
     Pro-Linux Foren-Übersicht -> Programmieren - C Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehen Sie zu:  

Powered by phpBB © phpBB Group
pro_linux Theme © 2004 by Mandaxy