24h_chrono.c
00001 #include <stdio.h>
00002
00003 int heure, minute, seconde;
00004
00005 void printTime() {
00006 if ((heure == 0) && (minute == 0) && (seconde == 0)) {
00007 printf("*** BOUM!!! ***\n");
00008 return;
00009 }
00010 printf("%d heure%s ", heure, (heure > 1) ? "s" : "");
00011 printf("%d minute%s ", minute, (minute > 1) ? "s" : "");
00012 printf("%d seconde%s ", seconde, (seconde > 1)? "s" : "");
00013 printf("avant explosion!\n");
00014 }
00015
00016 int setTime(int h, int m, int s) {
00017 if ((h >= 0) && (h <= 24) && (m >= 0) && (m <= 60) && (s >= 0) && (s <= 60)) {
00018 heure = h;
00019 minute = m;
00020 seconde = s;
00021 return 0;
00022 }
00023 printf("Erreur de format dans l'heure (h=%d, m=%d, s=%d)!\n",h,m,s);
00024 return 1;
00025 }
00026
00027 void tick() {
00028 seconde--;
00029 if (seconde < 0) {
00030 seconde = 59;
00031 minute--;
00032 if (minute < 0) {
00033 minute = 59;
00034 heure--;
00035 }
00036 }
00037 }
00038
00039 void test(int h,int m, int s) {
00040 setTime(h,m,s);
00041 printf("Début : "); printTime();
00042 tick();
00043 printf("Fin : "); printTime();
00044 printf("\n");
00045 }
00046
00047 int main()
00048 {
00049 test(0,0,1);
00050 test(0,0,2);
00051 test(0,1,0);
00052 test(1,0,0);
00053 test(25,0,75);
00054 return 0;
00055 }
00056