commit 9cc3b4c1bebeb77d877266a7ef7ae0d1f80e6096
parent 529ddcc274bb59c0603130af2278b9876ce2b2ff
Auteur: ldp <ldp@asteride.xyz>
Date: Mon, 8 Dec 2025 19:07:15 -0500
[bog] Améliorer la portabilité
Diffstat:
1 fichier modifié, 18 insertions(+), 3 suppressions(-)
diff --git a/depre.c b/depre.c
@@ -13,9 +13,16 @@
/* nombre de secondes entre le zéro Unix et zéro depre, par défaut */
#define ZERO_DEF (11138 * 60 * 60 * 24 + 3600 * 4)
+/* nombre de secondes dans une journée */
+#define SEC_JOUR 86400
+
+/* nombre de barres dans une journée */
+#define BAR_JOUR (16 * 16 * 16)
+
static void utilisation(FILE *f);
static void version(void);
static int ccvt(char *cc, time_t *rep);
+static int secbar(time_t sec);
char *nom_prog;
@@ -87,12 +94,12 @@ main(int argc, char **argv)
signe = "";
}
/* nombre de jours complets écoulés */
- jours = secondes / 86400;
+ jours = secondes / SEC_JOUR;
/* nombre de secondes écoulées aujourd'hui */
- secondes -= jours * 86400;
+ secondes -= jours * SEC_JOUR;
/* afficher la date d'aujourd'hui */
- printf("%s%x.%lx\n", signe, jours, secondes * (16 * 16 * 16) / 86400);
+ printf("%s%x.%x\n", signe, jours, secbar(secondes));
return 0;
@@ -138,3 +145,11 @@ ccvt(char *cc, time_t *rep)
return 0;
}
+
+/* convertir secondes en barres */
+/* renvoie un int, car il y a 4096 barres dans une journée */
+static int
+secbar(time_t sec)
+{
+ return (int) (sec * BAR_JOUR / SEC_JOUR);
+}