Sujet : Re: obtenir le fuseau horaire
De : fantome.forums.tDeContes (at) *nospam* free.fr.invalid (Thomas)
Groupes : fr.comp.os.unixDate : 30. Nov 2021, 20:52:40
Autres entêtes
Organisation : Guest of ProXad - France
Message-ID : <fantome.forums.tDeContes-349EFD.20524030112021@news.free.fr>
References : 1 2 3 4 5
User-Agent : MT-NewsWatcher/3.5.3b3 (Intel Mac OS X)
In article <
87ilw9sd1t.fsf@universite-de-strasbourg.fr.invalid>,
Alain Ketterlin <
alain@universite-de-strasbourg.fr.invalid> wrote:
Thomas <fantome.forums.tDeContes@free.fr.invalid> writes:
[...]
est-ce qu'il est fait usage, qqpart dans le monde, de fuseaux horaires
dont les minutes ne sont pas 0 ?
Oui. Le Népal est à +05:45 par exemple.
donc pour être bien portable, il faudrait que ça puisse être traduit par
ex en "0575".
si oui,
y a-t-il un moyen assez simple d'obtenir ou de convertir ça en secondes,
ou autre format suffisamment pratique pour les calculs ?
(J'ai un doute sur "les calculs". En général on calcule en UTC et on
affiche dans un fuseau donné. Cela dit...)
jusqu'à maintenant, j'ai réussi à faire tout ce que je voulais en UTC.
mais comme j'ai dit au début du fil, maintenant j'ai un truc pour lequel
je souhaite me caler sur le minuit local plutôt que sur le minuit UTC.
1) date (chez moi) a des variantes "%:z" par exemple, qui affiche
"+01:00" par exemple
ça ne marche pas chez moi, mais c'est peut être pas grave si ça ne
servait qu'à l'affichage et pas aux calculs.
2) ces chaînes sont des format fixe, donc même (s)scanf devrait s'en
sortir ; par exemple sscanf (..., "%1[+-]%d:%d", ...) en C.
je ne comprend pas tout,
mais effectivement, potentiellement on dot pouvoir séparer le signe puis
2 groupes de 2 chiffres, pour appliquer à chaque un traitement différent
...
(un peu une usine à gaz pour ce que c'est, c'est pour ça que j'espérais
qu'il existe qqch de simple :-) )
3) si tu dois faire cela en bash, il est possible de fournir la base, en
écrivant par exemple $((10#010)) (qui vaut 10) plutôt que $((010)) (qui
vaut 8).
ça ne marche pas à cause du signe :
$ var=$(( 10#010 ))
+ var=10
$ var=$(( 10#+010 ))
+ var=8
-- RAPID maintainerhttp://savannah.nongnu.org/projects/rapid/