Autour du web | Divers | Film | Geekeries | Les Idées de Nazab | Miscellanées | Projets | trésors de twitter |
-
Keep it simple is my mojo!
Je ne vous parle pas souvent de codes mais là je trouve que cela en vaut la peine même si mon expérience est térriblement banale je le reconnais.Je suis tombé sur un problème vieux comme le monde en PHP :comment récupéré le timestamp du premier jour d’une semaine par rapport à une date donné.
C’est un problème très courant en développement et google donne un très grands nombre de réponses .
C’est d’ailleur le permier resultat qui ma donné a réfléchir sur le développement et en particulier sur un adage qui est très connu :Keep It Simple Stupid ou KISS pour les intimes. Vous trouverez sur Wikipedia un article proposant plus de détails sur cet adage.Donc sur ce résultât de recherche, on voit 3 personnes qui s’échangent des bout de code pour répondre à cette problématique.Le premier propose un code de 21 lignes qui est simple mais ne gère pas le semaine a cheval sur deux années.1. function firstDayofWeek($week,$year)
2. {
3. $timestamp = mktime(0, 0, 0, 1, 1, $year);
4. if( $week == 1 )
5. {
6. while ( date(“W”,$timestamp) < 2 )
7. {
8. $timestamp += (60*60*24);
9. }
10. $timestamp -= (60*60*24*8);
11. }
12. else
13. {
14. while ( date(“W”,$timestamp) < $week )
15. {
16. $timestamp += (60*60*24);
17. }
18. $timestamp -= (60*60*24);
19. }
20. return $timestamp;
21. }Le second propose donc un code plus court 9 lignes qui resoud ce petit bug.1. function getFirstDayOfWeek($year,
2. ;$weeknr)
3. { $offset = date(‘w’, mktime(0,0,0,1,1,$y
4. ear));
5. $offset = ($offset < 5) ?&
6. nbsp;1-$offset : 8-$offset;
7. $monday = mktime(0,0,0,1,1+$offset,$year); $date = strtotime(‘+’ . ($weeknr&n
8. bsp;- 1) . ‘ weeks’, $monday);
9. return date(‘m/d/Y’,$date); }Le troisième arrive avec un code d’une seule ligne qui utilise une fonction native de php.1. <?php $firstday = strtotime(‘Last Sunday’); ?>Cette discution m’a donné a penssé que plus la solution est simple plue elle a de chance d’être juste et sans bug.Il est vrai que cela me surprend toujours quand je vois des développeurs réinventer la roue. C’est pour cela que j’apprécie la baseline de la librairie C++ QT de nokia Code less,create more.
A voir également:
- Ubiquity et le web deviens simple.
- Shake it baby shake it!!
- Buzz My Time petit point d’étape
- pimp my bike
- Beat It Mariachi Style
1 commentaire
-
Keep it simple is my mojo! http://bit.ly/7JwZuu
This comment was originally posted on Twitter
10/Dec/2009 à 02:20
