issue163:python
Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
issue163:python [2020/11/30 08:49] – d52fr | issue163:python [2020/12/01 17:42] (Version actuelle) – andre_domenech | ||
---|---|---|---|
Ligne 3: | Ligne 3: | ||
Python has a tremendous built-in series of libraries that deal with date and time. Often, we, as programmers, | Python has a tremendous built-in series of libraries that deal with date and time. Often, we, as programmers, | ||
- | En janvier 1969, un groupe de rock américain, Chicago (alors appelé Chicago Transit Authority), a posé la question musicale suivante : « Quelqu' | + | En janvier 1969, un groupe de rock américain, Chicago (alors appelé Chicago Transit Authority), a posé la question musicale suivante : « Quelqu' |
Python possède une formidable série de bibliothèques intégrées qui traitent de la date et de l' | Python possède une formidable série de bibliothèques intégrées qui traitent de la date et de l' | ||
Ligne 18: | Ligne 18: | ||
2020-10-23 10: | 2020-10-23 10: | ||
- | Allumez | + | Lancez |
Souvent, nous utilisons simplement les bibliothèques de date et d' | Souvent, nous utilisons simplement les bibliothèques de date et d' | ||
Ligne 40: | Ligne 40: | ||
>>> | >>> | ||
- | Ce qui est bien et facile. Vous pouvez facilement assigner l' | + | Ce qui est bien et facile. Vous pouvez facilement assigner l' |
>>> | >>> | ||
Ligne 105: | Ligne 105: | ||
Anyway, back to the subject at hand.** | Anyway, back to the subject at hand.** | ||
- | Lorsque nous traitons avec des bases de données, nous devons souvent mettre une heure ou une date dans la base de données comme un « horodatage » pour montrer quand quelque chose s'est passé. C'est très facile. | + | Lorsque nous traitons avec des bases de données, nous devons souvent mettre une heure ou une date dans la base de données comme « horodatage » pour montrer quand quelque chose s'est passé. C'est très facile. |
>>> | >>> | ||
Ligne 111: | Ligne 111: | ||
1603875671.3662472 | 1603875671.3662472 | ||
- | Vous pensez peut-être que cela ne ressemble pas à une heure, à une date ou à quelque chose de semblable. Mais c'est le cas. Il s'agit d'un horodatage UNIX. C'est en fait le nombre de secondes depuis le 1er janvier 1970 UTC. D' | + | Vous pensez peut-être que cela ne ressemble pas à une heure, à une date ou à quelque chose de semblable. Mais c'est le cas. Il s'agit d'un horodatage UNIX. C'est en fait le nombre de secondes depuis le 1er janvier 1970 UTC. D' |
- | Quoi qu'il en soit, revenons au sujet qui nous occupe. | + | Quoi qu'il en soit, revenons au sujet initial. |
**Accounting | **Accounting | ||
Ligne 123: | Ligne 123: | ||
Comptabilité | Comptabilité | ||
- | L'un des aspects merveilleux des possibilités de manipulation de la date et de l' | + | L'un des aspects merveilleux des possibilités de manipulation de la date et de l' |
Bien que cela semble assez simple, nous avons quelques contraintes sur la façon dont nous devons faire les calculs. Tout d' | Bien que cela semble assez simple, nous avons quelques contraintes sur la façon dont nous devons faire les calculs. Tout d' | ||
Ligne 147: | Ligne 147: | ||
Start time: 30.10.2020 08:00 - End Time: 30.10.2020 11:27 | Start time: 30.10.2020 08:00 - End Time: 30.10.2020 11:27 | ||
- | À ce niveau, les variables starttime et endtime sont toujours des chaînes. Pour les convertir en objets d' | + | À ce stade, les variables starttime et endtime sont toujours des chaînes. Pour les convertir en objets d' |
>>> | >>> | ||
Ligne 190: | Ligne 190: | ||
AttributeError: | AttributeError: | ||
- | Voici maintenant la pierre d' | + | Voici maintenant la pierre d' |
Hours = totaltime.hours | Hours = totaltime.hours | ||
- | Mais, je vous dirais alors que ça ne marche pas. Si vous l' | + | Mais, je vous dirai tout de suite que ça ne marche pas. Si vous l' |
>>> | >>> | ||
Ligne 218: | Ligne 218: | ||
0** | 0** | ||
- | Bon, ça ne nous aide pas. ll'objet timedelta n'a que 3 attributs | + | Bon, ça ne nous aide pas. L'objet timedelta n'a que 3 attributs |
• days # jours | • days # jours | ||
• seconds # secondes | • seconds # secondes | ||
• microseconds # microsecondes | • microseconds # microsecondes | ||
- | Regardons ces trois valeurs... | + | Regardons ces trois valeurs |
>>> | >>> | ||
Ligne 248: | Ligne 248: | ||
27** | 27** | ||
- | Nous savons que le temps total est de 3 heures et 27 minutes, mais nous ne facturons que des heures entières, arrondies, donc nous devrions facturer 4 heures au client. Comment | + | Nous savons que le temps total est de 3 heures et 27 minutes, mais nous ne facturons que des heures entières, arrondies, donc nous devrions facturer 4 heures au client. Comment |
>>> | >>> | ||
Ligne 278: | Ligne 278: | ||
So we can bill the client for £60 . That wasn’t as hard as expected.** | So we can bill the client for £60 . That wasn’t as hard as expected.** | ||
- | Ensuite, | + | Ensuite, |
>>> | >>> | ||
Ligne 293: | Ligne 293: | ||
60 | 60 | ||
- | Ainsi, nous pourrons facturer 60 € au client. | + | Ainsi, nous pourrons facturer 60 € au client. |
**Time Zones | **Time Zones | ||
Ligne 300: | Ligne 300: | ||
My friend Halvard lives in Norway and his time is somewhere around 7 hours ahead of mine. My friend Bruce, lives in Colorado and that is 1 hour behind my time.** | My friend Halvard lives in Norway and his time is somewhere around 7 hours ahead of mine. My friend Bruce, lives in Colorado and that is 1 hour behind my time.** | ||
+ | |||
+ | Fuseaux horaires | ||
+ | |||
+ | Je vais être brutalement honnête. Les fuseaux horaires me font mal au cerveau. VRAIMENT ! Parfois, lorsque je communique avec notre merveilleux rédacteur en chef, Ronnie, je me souviens qu'il vit en Écosse et qu'il est quelque part en avance d' | ||
+ | |||
+ | Mon ami Halvard vit en Norvège et son heure est en avance de 7 heures sur la mienne. Mon ami Bruce, qui vit dans le Colorado, a une heure de retard sur moi. | ||
**When I was growing up (yes, back in the days where rainbows were in black and white, and we had to watch TV by candlelight because there was no electricity), | **When I was growing up (yes, back in the days where rainbows were in black and white, and we had to watch TV by candlelight because there was no electricity), | ||
Ligne 306: | Ligne 312: | ||
pip install pytz** | pip install pytz** | ||
+ | |||
+ | Quand j' | ||
+ | |||
+ | La bibliothèque date/heure en Python ne gère pas vraiment les fuseaux horaires de façon native, mais il existe un paquet tiers que vous pouvez installer via pip. Il s' | ||
+ | |||
+ | pip install pytz | ||
**So how do we use pytz? It’s fairly easy. Let’s take a look. | **So how do we use pytz? It’s fairly easy. Let’s take a look. | ||
Ligne 321: | Ligne 333: | ||
>>> | >>> | ||
2020-10-05 12:00:00** | 2020-10-05 12:00:00** | ||
+ | |||
+ | Alors, comment utiliser pytz? C'est assez facile. Jetons-y un œil. | ||
+ | |||
+ | Nous faciliterons les choses en modifiant la déclaration d' | ||
+ | |||
+ | >>> | ||
+ | >>> | ||
+ | |||
+ | Maintenant, nous ne sommes pas obligés d' | ||
+ | |||
+ | Ici, nous obtenons l' | ||
+ | |||
+ | >>> | ||
+ | >>> | ||
+ | 2020-10-05 12:00:00 | ||
**Next, we’ll get a datetime object that is timezone aware: | **Next, we’ll get a datetime object that is timezone aware: | ||
Ligne 335: | Ligne 362: | ||
Wait a second. Why would it say that my time is 5 hours behind UTC? That’s because of Daylight Saving Time. (October 10, 2020 was before the change over to Daylight Standard time).** | Wait a second. Why would it say that my time is 5 hours behind UTC? That’s because of Daylight Saving Time. (October 10, 2020 was before the change over to Daylight Standard time).** | ||
+ | |||
+ | Ensuite, nous obtiendrons un objet d' | ||
+ | |||
+ | >>> | ||
+ | >>> | ||
+ | 2020-10-05 12: | ||
+ | |||
+ | L' | ||
+ | |||
+ | >>> | ||
+ | >>> | ||
+ | 2020-10-05 12: | ||
+ | |||
+ | Attendez une seconde. Pourquoi dit-il que mon temps a 5 heures de retard sur UTC ? C'est à cause de l' | ||
**So, let’s do it again, this time using the .now() method… | **So, let’s do it again, this time using the .now() method… | ||
Ligne 346: | Ligne 387: | ||
Ahhh. That makes a bit more sense. So Ronnie is 6 hours ahead of me.** | Ahhh. That makes a bit more sense. So Ronnie is 6 hours ahead of me.** | ||
+ | |||
+ | Refaisons-le maintenant, mais, cette fois, en utilisant la méthode .now() : | ||
+ | |||
+ | >>> | ||
+ | >>> | ||
+ | 2020-11-05 05: | ||
+ | >>> | ||
+ | >>> | ||
+ | 2020-11-05 05: | ||
+ | |||
+ | Ahhh ! C'est un peu plus compréhensible. Donc, Ronnie est en avance de 6 heures sur moi. | ||
**So, the musical question of the month, “Does anybody really know what time it is?” actually does seem to have a bit more relevance than it did when the article started, doesn’t it? I’ll leave you with that question hanging in your mind, and, hopefully, I didn’t plant the song into your mind so that it keeps running again and again. | **So, the musical question of the month, “Does anybody really know what time it is?” actually does seem to have a bit more relevance than it did when the article started, doesn’t it? I’ll leave you with that question hanging in your mind, and, hopefully, I didn’t plant the song into your mind so that it keeps running again and again. | ||
As always, until next time; stay safe, healthy, positive and creative!** | As always, until next time; stay safe, healthy, positive and creative!** | ||
+ | |||
+ | Ainsi, la question musicale du mois, « Quelqu' | ||
+ | |||
+ | Comme toujours, jusqu' | ||
issue163/python.1606722560.txt.gz · Dernière modification : 2020/11/30 08:49 de d52fr