Algorithme help

Bonjour,
j'ai besoin de votre aide pour un algorithme qui demande la date de naissance ( sous forme JOUR , MOIS , ANNÉE ) d'une personne , et affiche son age .

( ce que j'ai fais , j'ai demandé la date d'aujourd'hui , et la date de naissance , j'ai converti le tout en jour , j'ai fais la différence entre les dates , et j'ai divisé par 365 mais c trop long )
est ce que il y a une autre méthode ? )
merci
Configuration: Windows XP
Firefox 2.0.0.18

5 réponses

  1. Contributeur
    Salut,

    Alors ton algo doit être compos& de plusieurs parties. L'idéal serait: Demander la date, comparer cette date avec celle d'aujourd'hui, Evaluer le temps entre ces deux dates, afficher à l'écran. Tu vois ce que je veux dire?

    Cordialement
    1. oui, mais comment on va avoir la date d'aujourd'hui ( sur l'énoncé on ne demande pas ça )
      1. Contributeur
        Si cela peut t'aider, je vais te communiquer un script qui indique au système d'exploitation la date et l'heure actuelle. Il fonctionne sur les systèmes linux. (la fameuse commande date, pour les connaisseurs)

        ;-))
      2. Contributeur
        @Kharec
        #include <stdlib.h>
        #include <unistd.h>
        #include <time.h>
        
        int	dmsize[12] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }; // Indique au système le nombre de jour qu'il y a par mois
        long	timbuf;
        char	*cbp;
        
        
        int dysize(y)
        	int y;
        {
        	if (y % 4 == 0 && (y % 100 != 0 || y % 400 == 0))
        		return 366; // Pour les années bissextiles
        	return 365;
        }
        
        int
        gpair()
        {
        	register int c, d;
        	register char *cp;
        
        	cp = cbp;
        	if (*cp == 0)
        		return -1;
        	c = (*cp++ - '0') * 10;
        	if (c<0 || c>100)
        		return -1;
        	if (*cp == 0)
        		return -1;
        	if ((d = *cp++ - '0') < 0 || d > 9)
        		return -1;
        	cbp = cp;
        	return c + d;
        }
        
        void
        gdadd(n)
        {
        	timbuf += n;
        }
        
        void
        gmdadd(m, n)
        {
        	timbuf *= m;
        	timbuf += n;
        }
        
        int
        gtime()
        {
        	register int i;
        	register int y, t;
        	int d, h, m;
        	long nt;
        
        	t = gpair();
        	if (t<1 || t>12)
        		return 1;
        	d = gpair();
        	if (d<1 || d>31)
        		return 1;
        	h = gpair();
        	if (h == 24) {
        		h = 0;
        		d++;
        	}
        	m = gpair();
        	if (m<0 || m>59)
        		return 1;
        	y = gpair();
        	if (y<0) {
        		time(&nt);
        		y = localtime(&nt)->tm_year;
        	}
        	if (*cbp == 'p')
        		h += 12;
        	if (h<0 || h>23)
        		return 1;
        	timbuf = 0;
        	y += 1900;
        	for (i=1970; i<y; i++)
        		gdadd(dysize(i));
        	if (dysize(i) == 366)
        		dmsize[1] = 29;
        	else
        		dmsize[1] = 28;
        	while (--t)
        		gdadd(dmsize[t-1]);
        	gdadd(d-1);
        	gmdadd(24, h);
        	gmdadd(60, m);
        	gmdadd(60, 0);
        	return 0;
        }
        
        int
        main(argc, argv)
        	int argc;
        	char **argv;
        {
        	register char *tzn;
        	char *cbuf;
        
        	if (argc > 1) {
        		cbp = argv[1];
        		if (gtime()) {
        			write(1, "mauvaise conversion\n", 15);
        			return 1;
        		}
        		
        		timbuf += timezone;
        		
        		if (localtime(&timbuf)->tm_isdst)
        			timbuf -= 1 * 60 * 60;
        		if (stime(&timbuf) < 0){
        			write(1, "interdit\n", 14);
        			return 1;
        		}
        	}
        	time(&timbuf);
        	cbuf = ctime(&timbuf);
        	write(1, cbuf, 20);
        	tzn = tzname[localtime(&timbuf)->tm_isdst];
        	if (tzn)
        		write(1, tzn, 3);
        	write(1, cbuf + 19, 6);
        	return 0;
        }
    2. vazy, mais vu que c'est juste la 1ére série d'exercice ... ça sera pas idéal
      1. Contributeur
        Cherche sur code source.com, des logiciels de ce types il y en a plein dessus avec le code, tu pourras les étudier ;-)

        Cordialement