![]() |
![]() |
|
![]() |
![]() |
|
Programmierung Rat & Tat für Programmierer |
![]() |
|
Themen-Optionen | Ansicht |
![]() |
#1 |
Jr. Member
![]() Registriert seit: 09.12.2000
Alter: 45
Beiträge: 60
|
![]() 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 |
![]() |
![]() |
![]() |
#2 |
Inventar
![]() Registriert seit: 24.01.2001
Beiträge: 5.631
|
![]() 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; } |
![]() |
![]() |
![]() |
#3 |
Inventar
![]() Registriert seit: 24.09.2001
Beiträge: 7.335
|
![]()
____________________________________
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 . |
![]() |
![]() |
![]() |
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
|
|