DATETIMECONVERTER

Signaler
Messages postés
3819
Date d'inscription
dimanche 12 décembre 2004
Statut
Modérateur
Dernière intervention
28 septembre 2020
-
Messages postés
193
Date d'inscription
mercredi 24 août 2005
Statut
Membre
Dernière intervention
3 juin 2016
-
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/53468-datetimeconverter

Messages postés
193
Date d'inscription
mercredi 24 août 2005
Statut
Membre
Dernière intervention
3 juin 2016

au temps pour moi alors : le man date n'est pas forcément explicite du coup
Messages postés
3819
Date d'inscription
dimanche 12 décembre 2004
Statut
Modérateur
Dernière intervention
28 septembre 2020
113
>> j'ai privilégié la rapidité d'écriture à la rigueur
Sans doute, mais écrire "const std::string&" au lieu de "string" n'est pas si handicapant, non ?

>> sinon ctime est largement suffisant et simple pour ça..
Tout dépend de si tu veux faire du C ou du C++. On évite de mélanger C et C++ à moins qu'il y ait une bonne raison. Avec Boost::datetime, il n'y en a pas :)

>> ... pour la commande unix date que j'ai consultée avant d'écrire ce prog,
Attention de bien lire la doc avant d'affirmer quelque chose:

>> elle peut convertir la date courante en timestamp mais ne peut convertir aucune autre date
Mouais...
http://www.christopher.compagnon.name/sitewww/shell-date.html

>> de même elle ne peut convertir aucun timestamp en date
Ah bon ? Et un:
$ date -d @1314697811
Tue Aug 30 11:50:11 CEST 2011

A noter que ces remarques ne remettent pas en cause la qualité de ton programme. C'est d'ailleurs très propre d'avoir fait un man.
Messages postés
193
Date d'inscription
mercredi 24 août 2005
Statut
Membre
Dernière intervention
3 juin 2016

Sur le passage des arguments par référence ( je voulais écrire par copie ) => désolé
Messages postés
193
Date d'inscription
mercredi 24 août 2005
Statut
Membre
Dernière intervention
3 juin 2016

Merci pour ces remarques constructives,
Sur le passage des arguments par référence : j'ai privilégié la rapidité d'écriture à la rigueur (je ne développe pas tous les jours en c voilà la raison), mais j' en suis tout à fait conscient, de même pour le "using namespace std" , pour la différence entre it++ et ++it, j'avais oublié cette subtilité et donc merci pour ce rafraîchissement.

Pour les programmes similaires existants:
j'ai de vagues connaissances de boost mais je ne connaissais pas la bibli datetime, je vais aller y jeter un oeil pourquoi pas! sinon ctime est largement suffisant et simple pour ça..

autrement pour la commande unix date que j'ai consultée avant d'écrire ce prog, elle peut convertir la date courante en timestamp mais ne peut convertir aucune autre date, de même elle ne peut convertir aucun timestamp en date.. voilà
Messages postés
3819
Date d'inscription
dimanche 12 décembre 2004
Statut
Modérateur
Dernière intervention
28 septembre 2020
113
>> Cette petite application en ligne de commande sans prétention avait pour but premier de convertir les dates en timestamp et vice versa sous unix, je l'ai ensuite adaptée pour convertir 1 format de date en 1 autre format de date avec la possibilité de manipuler des opération sur les différentes unités de temps au passage.

Tu sais que la commande "date" sous Unix, fait déjà tout ça ? En C++, il existe aussi la bibliothèque boost::date_time qui le fait aussi.

>> expérimenter la librairie

La bibliothèque

>> getopt.h
boost::program_option est bien meilleur.

Passons à la critique du code:
- Évite les "using namespace", voir: http://0217021.free.fr/portfolio/axel.berardino/articles/bon-usage-using-namespace
- Parenthèses non nécessaires pour les return. Ex: return (it!=mm.end()); => return it != mm.end();
- Au lieu de:
cerr<<"Usage: "<second!=s2) it++; // Et si à force de faire it++, on a it > mm.end() ?
return (it!=mm.end()); // Pourquoi y a-t-il deux return (it!=mm.end()) à la suite ?
return (it!=mm.end()); // Pourquoi y a-t-il deux return (it!=mm.end()) à la suite ?
}