Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Difference between 2 Dates

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
27.08.2006, 12:39 Uhr
Karldin Shinowa
Professional Noob



C++:
#include"time.h"
#include<iostream>


int main()
{
  
tm time1, time2;
time_t t1,t2;

time1.tm_sec=1;    
time1.tm_min=1;    
time1.tm_hour=1;    
time1.tm_mday=1;    
time1.tm_mon=2;    
time1.tm_year=2006-1900;



time2.tm_sec=1;    
time2.tm_min=1;    
time2.tm_hour=1;    
time2.tm_mday=1;    
time2.tm_mon=3;    
time2.tm_year=2006-1900;


t1=mktime(&time1);
t2=mktime(&time2);

std::cout<<static_cast<int> ( difftime(t2,t1)/86400);
getchar();
}



Funktioniert Super. Nur ein Problem habe ich: Er rechnet jeden Monat mit 31 Tagen. Weiß wer wie ich ihm sagen soll dass er auf die 20er Monate und das Schaltjahr achtgeben muss. Oder geht das nicht und ich muss ne eigene Funktion schreiben. Wenn die eigene Funktion kann mir da dann wer nen Tipp geben wie ich die schreiben sollte. Weiß nicht weiter...
--
Ich will die Welt verbessern, doch Gott gibt mir nicht den Code.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
27.08.2006, 13:20 Uhr
Spacelord
Hoffnungsloser Fall


Warum das Rad neu erfinden?
www.boost.org/doc/html/date_time.html


Gruss Spacelord
--
.....Ich mach jetzt nämlich mein Jodeldiplom.Dann hab ich endlich was Eigenes.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
27.08.2006, 14:09 Uhr
Karldin Shinowa
Professional Noob


thx werd ich ma anschaun. Sonst erfind ich das Rad immer gerne selbst Is Boost prinzipiell nen Blick wert wenn man was sucht??

Btw: mist jetzt kann ich meine ganze CDate wegwerfen....
--
Ich will die Welt verbessern, doch Gott gibt mir nicht den Code.

Dieser Post wurde am 27.08.2006 um 14:12 Uhr von Karldin Shinowa editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
27.08.2006, 14:15 Uhr
Spacelord
Hoffnungsloser Fall



Zitat von Karldin Shinowa:
Is Boost prinzipiell nen Blick wert wenn man was sucht??



Auf jeden Fall!
Viele von den boost Geschichten werden wohl auch ihren Weg in den nächsten Standard finden,deshalb kann es nicht schaden sich schonmal damit auseinander zu setzen.

Gruss Spacelord
--
.....Ich mach jetzt nämlich mein Jodeldiplom.Dann hab ich endlich was Eigenes.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
27.08.2006, 17:34 Uhr
enriico



Ich verwende nun schon seit längerer Zeit die boost Libary und bin hell begeistert. Nur schon die ganze Geschichte mit dem anlegen und entfernen von dynamischen Objekten ist mit Hilfe von boost perfomanter und sicherer!

Boost wurde ja gegründet um eine "Spielwiese" für neue Ideen für die C++ Standardbibliothek zu sein. Im ersten C++ Standard sind einige "unschöne" Ecken und Kanten in der Bibliothek (und auch der Sprache). Ursache dafür waren zum Teil unter Zeitdruck gefällte Entscheidungen, deren Konsequenzen man ungenügend in der Praxis prüfen konnte. Der TR1 übernimmt einige der bei Boost erprobten Bibliotheken, so dass diese bei einer zukünftigen Standardversion normiert werden können.

Vorteile von boost:
+ non_copyable
+ BOOST_STATIC_ASSERT
+ shared_ptr, weak_ptr, enable_shared_from_this etc.
+ operators.hpp
+ bind() und function
+ array
+ vector
+ reguläre ausdrücke
+ Unterstützung für Metaprogramming mit type_traits
+...

weitere infos unter
www.boost.org/
www.boost.org/libs/libraries.htm

oder bei mir
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
27.08.2006, 17:39 Uhr
Karldin Shinowa
Professional Noob



Zitat von enriico:
I
Vorteile von boost:
....
+ array
+ vector
....


wie meinst das? Kann man die STL durch boost ersetzen also kommt man durch mit nur boost funktionen???
--
Ich will die Welt verbessern, doch Gott gibt mir nicht den Code.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
27.08.2006, 17:42 Uhr
enriico



nein die STL wirst du weiterhin benützen! boost ist einfach eine verbesserung und kann für gewisse aufgaben eingesetzt werden. in etwas 3 bis 4 jahren werden einige funktionen von boost im neuen "c++ standart" integriert werden!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
27.08.2006, 17:45 Uhr
enriico



Diese Boost-Klasse erlaubt sicheres Verwenden von mit new angelegten Objekten in Containern. Diese werden automatisch aufgeräumt, sobald nirgends mehr auf sie referenziert wird.

Ich habe dir hier ein kleines Beispiel gemacht, wie du mit boost arbeiten kannst!


C++:
#include <iostream>
#include <string>
#include <vector>
#include <boost/shared_ptr.hpp>

using namespace std;

struct Drug {
    Drug(string strN, int intP) : intPrice(intP),strName(strN) {}
    ~Drug() { cout << "Sold out " << strName << endl; }
    int intPrice;
    string strName;
};

typedef boost::shared_ptr<Drug> ptrDrug;

void print(ptrDrug const & refPtr) {
    cout << refPtr->strName << ": " << refPtr->intPrice << endl;
}

int main() {
    vector<ptrDrug> refVec;
    ptrDrug pDrug1( new Drug("Cocain",100) );
    refVec.push_back(pDrug1);
    {
        //pDrug2 wird nach dem Block ungültig sein
        ptrDrug pDrug2( new Drug("Ecstasy",10) );
        refVec.push_back(pDrug2);
    }
    vector<ptrDrug>::iterator refIter;
    for (refIter=refVec.begin();refIter!=refVec.end();refIter++) {
        print(*refIter); //Zugriff auf Iterator-Element
        cout << "Referenzierungen: " << (*refIter).use_count() << endl;
    }
    refVec.clear();
}
/* Output:
* Cocain: 100
* Referenzierungen: 2
* Ecstasy: 10
* Referenzierungen: 1
* Sold out Ecstasy
* Sold out Cocain
*/





Erklärung:
-- Bei refVec.clear() sind alle Referenzierungen auf pDrug2 weg. Das Heap-Objekt wird also automatisch aufgeräumt. Auf pDrug1 existiert jedoch noch eine Referenzierung. Dieses Heap-Objekt wird erst am Programmende aufgeräumt.

-- use_count() gibt die Anzahl Referenzierungen auf den aktuellen shared_ptr zurück
-- reset() erlaubt es eine Referenzierung zu löschen. (pDrug1.reset()).

Dieser Post wurde am 27.08.2006 um 17:48 Uhr von enriico editiert.
 
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: