Poldi Geschrieben 5. Juli 2001 Geschrieben 5. Juli 2001 so ein ähnliches Problem hatte ich schon mal ... aalso, ich will eine Funktion schreiben, der ich ein Datum übergebe. rückgabewert der funktion sollen die sekunden sein, die seit 01.01.1970 vergangen sind. das mit dem aktuellen datum zu machen hab ich ja geschafft, aber ich weiß nicht, wie ich dieser doofen funktion explizit ein datum übergeben kann ... ich hoffe ihr könnt mir helfen ... [ 05. Juli 2001: Beitrag editiert von: Poldi ]
Net-srac Geschrieben 5. Juli 2001 Geschrieben 5. Juli 2001 Was ist wenn du einen Zeiger übergiebst? Funktionier das nicht? Greetz
TingleTangle Geschrieben 5. Juli 2001 Geschrieben 5. Juli 2001 in welchem typ uebergibst du den das datum jetzt?
Poldi Geschrieben 5. Juli 2001 Autor Geschrieben 5. Juli 2001 ich übergeb da goa nikkes ... das sieht momentan so aus: int main () { time_t Sekunden; Sekunden = time(NULL); printf("Sekunden seit 1970: %d", Sekunden); return 0; } Also muß ich wohl statt NULL was anderes übergeben ... aber was?!
Net-srac Geschrieben 5. Juli 2001 Geschrieben 5. Juli 2001 Was steht denn in Time()? Wäre besser zu wissen was die mit deinem Wert macht, den du übergibst. Warum wolltest du NULL übergeben? Woher weiß deine Time() das du die Sekunden seit 1970 und nicht seit 1537 haben willst? Fragen über Fragen. :confused: :confused: Greetz
Poldi Geschrieben 5. Juli 2001 Autor Geschrieben 5. Juli 2001 gute Frage. meine manpage ist ein Chaos, meine Bücher schweigen sich zu dem Thema aus, und surfen ist auch nicht drin sonst krieg ich streß wegen der internetrechnung. bin auch nur immer im forum, weil die seiten irgendwie im cache der firewall sind oder so. ich weiß auch nicht, wie das geht daß ich posten kann, ohne mein firewall kennwort einzugeben ... naja egal.
gajUli Geschrieben 5. Juli 2001 Geschrieben 5. Juli 2001 Hi, weiss momentan nicht genau, ob das C-Standard ist, aber die Referenz, die ich hier habe, sagt, dass time() die Sekunden seit Mitternacht am 1. Jan 1904 liefert! Uli
Crush Geschrieben 6. Juli 2001 Geschrieben 6. Juli 2001 OK, hat mich interessiert. Hier ist meine Lösung: erst die Includes #include "time.h" #include "afx.h" //Dann der Header long Difftime(CTime endtime); // Jetzt die aufrufende Routine void CCrushDlg::Onstart() { // hier kommt Dein Datum rein (Jahr, Monat, Tag, Stunde, Minute, Sekunde, 0) // auffällig ist, daß CTime-Objekte eh in Sekunden rechnen wie man gleich im Debugger sehen kann // Nur leider kann man das nicht so einfach abfragen CTime t1(2001,1,1,1,0,0,0); long seconds=Difftime(t1); // Ichweissichweiss Definitionen sollten immer extra stehen, mach ich aber gerne so damit mehr auf den Bildschirm paßt // ansonsten halt erst long seconds; dann seconds=Difftime(t1); } // Nun das berechnen long CCrushDlg: :Difftime(CTime endtime) { // das ist unsere Startzeit, wichtig ist (deshalb vermute ich will der Lehrer das mit CTime haben), // daß die erste Sekunde von 1970 ausgerechnet das Startdatum der CTime-Klasse ist, also dem Wert 0 entspricht CTime starttime(1970, 1, 1, 1, 0, 0, 0); CTimeSpan t3=endtime-starttime; //alternative Methode (um eine time_t obj zu bekommen wer immer es auch braucht) //time_t tdiff=endtime.GetTime()-starttime.GetTime(); //CTimeSpan t3(tdiff); return t3.GetTotalSeconds(); } Also muß der Lehrer mit Absicht den Umgang mit den CTime-Objekten hinterfragt haben und weils es einfach nicht anders geht das Anwenden von CTimeSpan Sag ihm aber, daß die Lösung von mir ist! (mit fremden Loorbeeren schmückt man sich nicht)
Crush Geschrieben 6. Juli 2001 Geschrieben 6. Juli 2001 He, Uli! Was soll denn das mit der Witzfigur in meinem Text? Kann man den keine Scopes verschicken?
Crush Geschrieben 6. Juli 2001 Geschrieben 6. Juli 2001 achso, oben war ja noch ein Scope, aber warum hab ich das Gesicht bekommen??? Ich möchte das gerne rekonstruieren können. Vielleicht sagst Du es mir mal.
gajUli Geschrieben 6. Juli 2001 Geschrieben 6. Juli 2001 *gacker* Also "Doppelpunkt-D" erzeugt das hier: Versuchen wir mal ein Code-Tag: Dies hier ist auch "Doppelpunkt-D": [/code] Abschicken, gucken...
gajUli Geschrieben 6. Juli 2001 Geschrieben 6. Juli 2001 ... dass das Forumsscript auch in der neuen Version diesen Bug hat. :D Ob ein Leerzeichen hilft? : D Uli
Crush Geschrieben 6. Juli 2001 Geschrieben 6. Juli 2001 dann mal hier der Test: :a :b :c :e :f :g :h :i :j :k :l :m :n :q :r :s :t :u :v :w :x :y :z :0 :1 :2 :3 :4 :5 :6 :7 :8 :9 :@ :* :+ :- :; mal sehn ...
Crush Geschrieben 6. Juli 2001 Geschrieben 6. Juli 2001 achso Großbuchstaben sind was anderes: :A :B :C :E :F :G :H :I :J :K :L :M :N :Q :R :S :T :U :V :W :X :Y :Z
Net-srac Geschrieben 9. Juli 2001 Geschrieben 9. Juli 2001 Warum macht ihr nicht einfach ein Häckchen bei "Smilies in diesem Beitrag deaktivieren" :confused: Greetz
Poldi Geschrieben 9. Juli 2001 Autor Geschrieben 9. Juli 2001 danke für deine Hilfe Crush, war aber C++, da kann ich hier nix mit anfangen ... Ich habs dann doch noch hinbekommen (in C): #include <stdio.h> #include <time.h> #include <stdlib.h> // 2001-07-05 int main(int argc,char* argv[]) { time_t Sekunden; struct tm tm; int year; int mon; int mday; year = atoi(argv[1]); mon = atoi(argv[2]); mday = atoi(argv[3]); // Jahr seit 1990 -> 2001 ist dann 101 tm.tm_year = year; tm.tm_mon = mon; tm.tm_mday = mday; tm.tm_min = 0; tm.tm_sec = 0; tm.tm_hour = 0; Sekunden = mktime(&tm); printf("%d", Sekunden); return 0; } Ich muß mir bessere Bücher kaufen ...
Crush Geschrieben 9. Juli 2001 Geschrieben 9. Juli 2001 So ein riesen Unterschied ist ja nicht, ich habe ja die time_t-Methode auch schon angedeutet. Aber hauptsache: funzt (irgendwie)! Ich hätte jedoch Schwierigkeiten die Sekunden von 1850 zu berechnen, das wäre doch interessant.
Poldi Geschrieben 10. Juli 2001 Autor Geschrieben 10. Juli 2001 das geht auch, ich glaub durch negative zahlen beim jahr. bin mir aber nicht ganz sicher.
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden