depre

Afficher la date et l'heure hexadécimale
git clone git://git.asteride.xyz/~ldp/depre.git
Journaux | Fichiers | Références | LISEZ-MOI | LICENCE

commit ad69ba79f75c081fb77ccb30b6e9de7f2928f81e
parent 9a5a30c3d27fbf9df40bebaa0f711ec240f0b2e2
Auteur: ldp <ldp@asteride.xyz>
Date:   Thu,  8 Aug 2024 09:32:26 -0400

gestion des dates négatives

Diffstat:
MMakefile | 2+-
Mdepre.c | 16+++++++++++-----
2 files changed, 12 insertions(+), 6 deletions(-)

diff --git a/Makefile b/Makefile @@ -2,7 +2,7 @@ PREFIX = /usr/local BIN_DOS = ${PREFIX}/bin CC = cc -COPTS_SPCL = -O2 -NDEBUG +COPTS_SPCL = -O2 -DNDEBUG COPTS = -Wall -Wextra -Werror -Wpedantic -Wno-implicit-fallthrough \ -std=c89 ${COPTS_SPCL} diff --git a/depre.c b/depre.c @@ -11,7 +11,7 @@ #include <unistd.h> /* nombre de secondes entre l'époque Unix et l'époque depre */ -#define NSECS (11138 * 60 * 60 * 24 + 3600 * 4) +#define INTERVALLE (11138 * 60 * 60 * 24 + 3600 * 4) static void utilisation(FILE *f); static int ccvt(char *cc, time_t *rep); @@ -24,6 +24,7 @@ main(int argc, char **argv) int opt; time_t secondes; unsigned int jours; + char *signe; if ((nom_prog = argv[0]) == NULL || nom_prog[0] == '\0') nom_prog = "depre"; @@ -49,16 +50,20 @@ main(int argc, char **argv) goto erreur; /* nombre de secondes écoulées depuis l'époque depre */ - secondes = secondes - NSECS; - if (secondes < 0) - goto erreur; + secondes = secondes - INTERVALLE; + if (secondes < 0) { + signe = "-"; + secondes *= -1; + } else { + signe = ""; + } /* nombre de jours complets écoulés */ jours = secondes / 86400; /* nombre de secondes écoulées aujourd'hui */ secondes -= jours * 86400; /* afficher la date d'aujourd'hui */ - printf("%x.%llx\n", jours, secondes * (16 * 16 * 16) / 86400); + printf("%s%x.%llx\n", signe, jours, secondes * (16 * 16 * 16) / 86400); return 0; @@ -73,6 +78,7 @@ utilisation(FILE *f) fprintf(f, "Utilisation: %s [-r secondes] [-h]\n", nom_prog); } +/* convertir une chaîne de caractères en nombre */ static int ccvt(char *cc, time_t *rep) {