Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Differenz zweier Datumsangaben

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
09.06.2003, 12:55 Uhr
~Jogi76
Gast


Hallo,

ich versuche seit längerem eine Methode zu schreiben die mir die differenz zweier Datumsangeben in Tagen liefert. Dabei soll es egal sein ob ich zb. von
heute in die Zukunft oder in Vergangenheit zähle. Habe da jetzt mehrere Lösungsansätze, doch sind die alle zu ungenau ;-(

wär cool wenn ihr mir da helfen könntet !!!

meine Klasse sieht so aus:

C++:
#ifndef DATUM_H
#define DATUM_H

#include <iostream.h>       /// wg. cout, cin,..
#include <stdio.h>          /// wg. sscanf, printf
#include <time.h>           /// Zeit _ Funktionen
#include <conio.h>          /// wg. getch()
#include <string.h>         /// stringfunktionen
#include <ctype.h>          /// wg. isdigit
#include <iomanip.h>        /// wg. setw, fill...
#include <stdlib.h>         /// wg. srand()
#include <windows.h>        /// wg.  Multimedia Timer
#include <mmsystem.h>       /// wg.  Multimedia Timer  // braucht WINMM.LIB !!!

//  Tastaturbuffer löschen
#define TPL while(cin.rdbuf()->in_avail()) cin.rdbuf()->sbumpc()

class DATUM
{
  // Attribute
  private:
    int ta;
    int mo;
    int ja;
    int std;
    int min;
    int sec;

  public:
    // Konstruktoren
    DATUM(int tag=0,
          int monat=0,
          int jahr=0,
          int std=0,
          int min=0,
          int sec=0);

    DATUM(char*);    
    // Destruktor
    ~DATUM();

    //Methoden
    void ausgabe_1(char*);
    void ausgabe_2();
    void tage_vor(int); // selbstgeschrieben
    int tage_im_monat(int, int);
    char* monatsnamen(int);
    void ausgabe_3(char*, int);
      void datum_voraus();
      void datum_zurueck();
    void wait();
    int check_date(DATUM, DATUM);
    int anz_schaltjahre();
    void system_info();
    void eingabe();
    int zufall(int,int);
    void refresh();
    void stopuhr();
    void double_zufall();
    void time_out();  
    int TageImJahr(int);
    int date_diff(DATUM, DATUM);  //  das PROBLEM

};

#endif



Danke Jogi76
Korrektur mike: cpp-Tags

Dieser Post wurde am 09.06.2003 um 14:24 Uhr von mike editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
09.06.2003, 14:45 Uhr
mike
Pinguinhüpfer
(Operator)


Hi!
Probier mal time.h (vielleicht gehts mit difftime)

mfg mike
--
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
09.06.2003, 14:54 Uhr
~StefanD
Gast


Mein bester Tip wäre, Datumsangaben als Tage seit einem bestimmten Referenztag zu speichern. Die Uhrzeit geht ganz gut als Sekunden (oder Millisekunden?) seit Mitternacht. Zur Differenzbildung kann man dann einfach zwei ints manipulieren. Beim Datum ist allerdings die Umrechnung in Tag, Monat und Jahr nicht trivial.

Ich habe eine Datums-Klasse, die so verfährt. Die Idee dazu stammt aus einem Artikel - bloß weiß ich halt nicht mehr als welcher Zeitschrift. Wenn du sie als "Anschauungsobjeckt" haben möchtest, schick mir einfach eine Mail an sdr@epost.de und ich schicke die die Dateien zurück. Den Code hier zu posten, wäre wohl des Guten zuviel.


Stefan.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
09.06.2003, 16:02 Uhr
~Jogi76
Gast


Super Idee,

Datumsangaben als Tage seit einem bestimmten Referenztag zu speichern !!

jetzt funzt dat auch ;-)

Danke Stefan

Mfg Jogi76
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
16.06.2003, 23:24 Uhr
~DIO
Gast


da hättet ihr aber auch so drauf kommen können, denn mit
time.h
mit (soviel ich weiß) dem befehl "time()" oder so bekommt man ja sowiso die sekunden seit dem 1.1.1970 raus...
Also haben die Erschaffer von C uns das ganze schon vorgemacht-

MFG DIO
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: