1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75
| /* programme de test de calcul sur les dates */
#include <stdio.h>
#include <time.h>
/* =============================================================*/
/* procedure principale du programme */
/* =============================================================*/
main ()
{
char date_complete[30+1];
char date_saisie[10+1];
int NbJours ;
int zero=1;
time_t intps;
struct tm *pstDate ;
char jj[3], mm[3], aa[3];
printf("debut de programme \n");
printf("Entrer la date de base (JJ/MM/AAAA ) \n");
gets(date_saisie);
date_saisie[10]='\0';
printf("Date saisie %s \n", date_saisie);
printf("Entrer le nombre de jours ( + ou - ) \n");
scanf("%03d",&NbJours);
memset(date_complete, 0x00, 31);
memset(jj, 0x00, 3);
memset(mm, 0x00, 3);
memset(aa, 0x00, 3);
strncpy(date_complete, date_saisie, 10);
/* chk_date(date_complete);
printf("1 - date corrigee %s \n", date_complete);
strncpy( jj, &date_complete[0], 2) ;
strncpy( mm, &date_complete[3], 2) ;
strncpy( aa, &date_complete[8], 2) ; */
strncpy( jj, &date_saisie[0], 2) ;
strncpy( mm, &date_saisie[3], 2) ;
strncpy( aa, &date_saisie[8], 2) ;
printf("2 - jj/mm/aa %02d/%02d/%02d \n", atoi(jj), atoi(mm), atoi(aa));
pstDate->tm_sec = zero ;
pstDate->tm_min = zero ;
pstDate->tm_hour = zero ;
pstDate->tm_mday = atoi(jj);
pstDate->tm_mon = atoi(mm)-1;
pstDate->tm_year = atoi(aa)+100 ;
printf("3 - DateChar %02d/%02d/%04d %02d:%02d:%02d \n",
pstDate -> tm_mday,
pstDate -> tm_mon+1,
pstDate -> tm_year+1900,
pstDate -> tm_hour,
pstDate -> tm_min,
pstDate -> tm_sec);
intps = mktime(&pstDate);
printf("4 - %s", ctime(&intps));
intps = intps + 3600*NbJours*(long)24;
pstDate = localtime (&intps);
printf("5 - DateChar %02d/%02d/%04d \n",
pstDate -> tm_mday,
pstDate -> tm_mon+1,
pstDate -> tm_year+1900);
printf("6 - %s + %3d jours = %s", date_saisie , NbJours, ctime(&intps));
} |
Partager