WCM - Das österreichische Computer Magazin Forenübersicht
 

Zurück   WCM Forum > Rat & Tat > Programmierung

Programmierung Rat & Tat für Programmierer

Microsoft KARRIERECAMPUS

Antwort
 
Themen-Optionen Ansicht
Alt 04.12.2002, 16:07   #1
Kamikaze
Jr. Member
 
Registriert seit: 09.12.2000
Alter: 45
Beiträge: 60


Standard Datum Algorithmen gesucht

Hallo!

Kennt jemand von euch eine gute Seite mit Algorithmen (insbesondere für Datum)?

Ich muss nämlich zu einem Datum eine best. Anzahl von Monaten addieren und will das Enddatum herausbekommen.

Selbst programmieren könnte ich es wahrscheinlich auch, aber ich brauche es schnell und sollte zu 100% funktionieren (da für eine Bankanwendung).

Danke im voraus
____________________________________
Sayonara
Kamikaze
Kamikaze ist offline   Mit Zitat antworten
Alt 04.12.2002, 17:59   #2
kikakater
Inventar
 
Registriert seit: 24.01.2001
Beiträge: 5.631


Standard

Code:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>

typedef struct {
 int tag_quelle_und_ziel
    ,monat_quelle_und_ziel
    ,jahr_quelle_und_ziel
    ,differenz_tag_plusminus
    ,differenz_monat_plusminus
    ,differenz_jahr_plusminus
    ,schalter_dochnichtquelle; /* 1 .. Tagesdatum einsteuern */
} DATUMPARAMETER;

int BerechnungDifferentesDatum(DATUMPARAMETER *pDatum);

int main( void )
{
 DATUMPARAMETER sDatum;

 memset(&sDatum,0,sizeof(sDatum));

 printf("Tag  : "); scanf("%d",&sDatum.differenz_tag_plusminus);
 printf("Monat: "); scanf("%d",&sDatum.differenz_monat_plusminus);
 printf("Jahr : "); scanf("%d",&sDatum.differenz_jahr_plusminus);

 sDatum.schalter_dochnichtquelle= 0;

 sDatum.tag_quelle_und_ziel = 1;
 sDatum.monat_quelle_und_ziel = 12;
 sDatum.jahr_quelle_und_ziel = 1980;

 if( BerechnungDifferentesDatum(&sDatum) < 0 )
 { printf("Fehler bei der Datumsberechnung\n"); exit(0); }

 printf("Das Datum lautet %02d.%02d.%04d\n"
 ,sDatum.tag_quelle_und_ziel
 ,sDatum.monat_quelle_und_ziel
 ,sDatum.jahr_quelle_und_ziel);

 return 0;
}

/* Datum berechnen ... ! intern ! Monat 0 - 11, Jahr 0 - 127, Basis 1900 */
int BerechnungDifferentesDatum(DATUMPARAMETER *pDatum)
{
 struct tm s_tm,*ps_tm;
 time_t time_t_r;

 if(pDatum->schalter_dochnichtquelle == 1)
 {
  time_t_r= time(NULL);
  ps_tm= localtime(&time_t_r);
  pDatum->tag_quelle_und_ziel= ps_tm->tm_mday;
  pDatum->monat_quelle_und_ziel= ps_tm->tm_mon;
  pDatum->jahr_quelle_und_ziel= ps_tm->tm_year;
 }
 else
 {
  pDatum->monat_quelle_und_ziel--;
  pDatum->jahr_quelle_und_ziel -= 1900;
 }

 memset(&s_tm,0,sizeof(s_tm));

 s_tm.tm_mday= pDatum->tag_quelle_und_ziel + pDatum->differenz_tag_plusminus;
 s_tm.tm_mon=  pDatum->monat_quelle_und_ziel + pDatum->differenz_monat_plusminus;
 s_tm.tm_year= pDatum->jahr_quelle_und_ziel + pDatum->differenz_jahr_plusminus;

 time_t_r= mktime(&s_tm);

 ps_tm= localtime(&time_t_r);
 if(!ps_tm) return -1;

 pDatum->tag_quelle_und_ziel= ps_tm->tm_mday;
 pDatum->monat_quelle_und_ziel= ps_tm->tm_mon+1;
 pDatum->jahr_quelle_und_ziel= ps_tm->tm_year+1900;

 return 0;
}
kikakater ist offline   Mit Zitat antworten
Alt 04.12.2002, 18:10   #3
_m3
Inventar
 
Registriert seit: 24.09.2001
Beiträge: 7.335


Standard

http://theoryx5.uwinnipeg.ca/mod_per...at;catinfo=612
____________________________________
Weiterhin zu finden auf http://martin.leyrer.priv.at , http://twitter.com/leyrer , http://www.debattierclub.net/ , http://www.tratschen.at/ und via Instant Messaging auf Jabber: m3 <ät> cargal.org .
_m3 ist offline   Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 08:28 Uhr.


Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Forum SEO by Zoints
© 2009 FSL Verlag