Zum Inhalt springen

Datum in Sekunden seit 1970 umrechnen


Poldi

Empfohlene Beiträge

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 ]

Link zu diesem Kommentar
Auf anderen Seiten teilen

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?!

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

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)

Link zu diesem Kommentar
Auf anderen Seiten teilen

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 ... :D:D

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...