Calendrier automatique

Phoenix23

XLDnaute Occasionnel
Bonsoir à toutes et tous,
Mon problème: Un calendrier automatique qui calcul le temps passé depuis la date de naissance, j'ai trouvé, modifié une formule trouvée sur internet pour les années, mois, jours passés, mais je bloque pour les heures, minutes secondes.
D'avance merci pour votre aide
Cordialement
 

Pièces jointes

  • Classeur2.xlsx
    10.2 KB · Affichages: 153
  • Classeur2.xlsx
    10.2 KB · Affichages: 151
  • Classeur2.xlsx
    10.2 KB · Affichages: 161

Lone-wolf

XLDnaute Barbatruc
Re : Calendrier automatique

Re Modeste,

il faut dire que j'avais fait cela quand j'ai commencé à avoir des notions sur Excel et les formules.
Pour les dates comportants les heures, on peux les supprimer sans autres, ça ne vas rien changer.


A+ :cool:
 

Modeste geedee

XLDnaute Barbatruc
Re : Calendrier automatique

Bonsour®
je n'ai pas vu de réaction sur ma macro au poste#8 !
j'aurai aimé savoir si c'est ok !?
personnellement il me semblait que oui !? mais...

:cool:
personnellement pour moi aussi c'est OK...

:p
quoi que ...
Jour = Day(DatEnCours - DatNaissance)
If Jour >= 31 Then Mois = Mois + 1: Jour = 0

la condition >= est superfétatoire...:rolleyes:
Day ne peut être supérieur à 31
If Jour = 31 doit suffire ...

de même pour Mois
If Mois =12
quand month = 12, mois=month-1

Annee = Year(DatEnCours - DatNaissance) - 1900
Mois = Month(DatEnCours - DatNaissance) - 1
Jour = Day(DatEnCours - DatNaissance)
If Jour = 31 Then Mois = Mois + 1: Jour = 0
If Mois = 12 Then Annee = Annee + 1: Mois = 0
;)

nb : de toute façon, chacun sait ce que Roger et moi-même pensons de ce découpage en "années et mois élastiques"
;)
 

ROGER2327

XLDnaute Barbatruc
Re : Calendrier automatique

Bonjour à tous.


Re...
bonsoir à tous,

je n'ai pas vu de réaction sur ma macro au poste#8 !
j'aurai aimé savoir si c'est ok !?
personnellement il me semblait que oui !? mais...
Un petit comparatif en pièce jointe. Quant à savoir si c'est ok, c'est affaire de goût...

(Pour me faciliter les choses, j'ai déduit une fonction personnalisée de votre procédure :
VB:
Function EcartDate(DatNaissance As Date, DatEnCours As Date)
'D'après une procédure de Roland_M
Dim Annee, Mois, Jour
  Annee = Year(DatEnCours - DatNaissance) - 1900
  Mois = Month(DatEnCours - DatNaissance) - 1
  Jour = Day(DatEnCours - DatNaissance)
  If Jour >= 31 Then Mois = Mois + 1: Jour = 0
  If Mois >= 12 Then Annee = Annee + 1: Mois = 0
  EcartDate = Array(Annee, Mois, Jour) 'Renvoie un vecteur-ligne à trois composantes.
End Function
Sauf erreur de ma part, cette transformation n'induit pas de changement dans le résultat.)


Bonne nuit.


ℝOGER2327
#7122


Mercredi 25 Décervelage 141 (Saint Petiot, expert - fête Suprême Quarte)
3 Pluviôse An CCXXII, 1,4938h - fragon
2014-W04-3T03:35:07Z
 

Pièces jointes

  • Âge(2).xlsm
    25.1 KB · Affichages: 110

Modeste geedee

XLDnaute Barbatruc
Re : Calendrier automatique

Bonsour®
Bonjour à tous,

en ce qu'il concerne cette ligne, il ne faudrait pas mettre 28 ou 29 ( Février ) ? A moins que je ne dise une bêtise.
A+ :cool:

pour simplifier :...:confused:
:rolleyes:
en raisonnant en année et mois :mad: :mad: :mad: :mad:
année et mois ne sont pas des constantes !!! (*)
l'âge le plus grand "dans une année" ne peut etre que 11 mois et 31 jours
si l'on ajoute 1 jour ont dit alors 1 an 0 mois 0 jour

:mad: :mad: :mad: :mad: (*)
bien sûr on pourra dire le 28 février pour une personne née le 1er mars :
X ans, 11 mois et 28 jours=365 jours

tout comme le 31 juillet pour une personne née le 1er août
X ans, 11 mois et 31 jours =365 jours
 

Lone-wolf

XLDnaute Barbatruc
Re : Calendrier automatique

Re Modeste geedee,

D'après Wikipédia, l'année commune compte exactement 365,25 jours ou 8760 heures. L'année bissextile compte exactement 366,34567654323456 jours ou 8784 heures. Chaque année divisible par quatre est une année bissextile.

La condition dit " Si Jour >= 31 ". Mais si je suis né au mois de Février qui compte au maximum 29 jours ou Juin qui en compte 30 par ex., comment peut-il être supérieur ou égal à 31??? . Je dois attendre 2 jours avant qu'il ne rajoute 1 mois. Pour chaque année, je perd 1 ou 2 jours, et si j'ai 60 ans, je perds 300 jours.

Un petit dicton italien que j'ai traduit en français au passage.

30 jours à Novembre
avec Avril, Juin et Septembre.
De 28 il y en a qu'un (Février),
tous les autres en ont 31.


A+ :cool:
 

ROGER2327

XLDnaute Barbatruc
Re : Calendrier automatique

Bonsoir à tous.


Discussion passionnée !
J'avais joint un petit texte à une contribution sur le même thème. Je le ressors de son classeur car il me semble toujours d'actualité :


La question revient souvent et ne trouve généralement pas de réponse entièrement satisfaisante. Tentons une nouvelle fois de voir pourquoi.
Essayons d'abord d'être raisonnable.​


Proposition :

Le calcul de différence de dates grégoriennes ne peut se concevoir qu'en périodes de quatre siècles, en semaines, en jours calendaires, en heures, en minutes, en secondes.
Il ne peut en aucun cas s'effectuer rationnellement en siècles, en années ou en mois.​


Preuve :

En effet, tout le monde sait que :
La seconde « est la durée de 9 192 631 770 périodes de la radiation correspondant à la transition entre les niveaux hyperfins F=3 et F=4 de l’état fondamental 6S½ de l’atome de césium 133 ».
1 minute = 60 secondes ;
1 heure = 60 minutes = 3x600 secondes ;
1 jour calendaire = 24 heures = 1 440 minutes = 86 400 secondes ;
1 semaine = 7 jours calendaires = 168 heures = 10 080 minutes = 604 800 secondes ;
:mad: 1 mois = 28 jours calendaires ou 29 jours calendaires ou 30 jours calendaires ou 31 jours calendaires ;
:mad: 1 année = 365 jours calendaires ou 366 jours calendaires ;
:mad: 1 siècle = 36 524 jours calendaires ou 36 525 jours calendaires ;
1 période de quatre siècles = 20 871 semaines = 146 097 jours calendaires = 3 506 328 heures
= 210 379 680 minutes = 12 622 780 800 secondes.​


Conclusion :

Le siècle, l'année et le mois ne sont pas, à proprement parler, des unités de mesure.

Par conséquent, mesurer une durée en siècles, en années ou en mois, c'est comme mesurer une longueur avec un élastique.

En pratique, si l'on veut utiliser ces fausses unités, il faut admettre l'approximation, ou, si possible, définir des conventions propres à lever les ambiguïtés.​


Est-ce utile ? Je n'en sais rien.​


ℝOGER2327
#7125


Mercredi 25 Décervelage 141 (Saint Petiot, expert - fête Suprême Quarte)
3 Pluviôse An CCXXII, 8,1341h - fragon
2014-W04-3T19:31:18Z


Bonne soirée.
 
Dernière édition:

Lone-wolf

XLDnaute Barbatruc
Re : Calendrier automatique

Bonsoir Roger,

1 mois = 28 jours calendaires ou 29 jours calendaires ou 30 jours calendaires ou 31 jours calendaires.
1 année = 365 jours calendaires ou 366 jours calendaires.

Si je suis ce raisonnement, si une personne a travaillé 12h; il aurai travaillé un jour??? (puisque 28-29-30-31 représente 1 mois) :confused: :confused:


A+ :cool:
 

ROGER2327

XLDnaute Barbatruc
Re : Calendrier automatique

Re...


Bonsoir Roger,

1 mois = 28 jours calendaires ou 29 jours calendaires ou 30 jours calendaires ou 31 jours calendaires.
1 année = 365 jours calendaires ou 366 jours calendaires.

Si je suis ce raisonnement, si une personne a travaillé 12h; il aurai travaillé un jour??? (puisque 28-29-30-31 représente 1 mois) :confused: :confused:


A+ :cool:
Il ne s'agit pas de raisonnement mais de constatations.
Dans sa grande sagesse, le sieur Ugo Boncompagni, surnommé Sa Sainteté Grégoire XIII dans certains milieux, a modifié le calendrier des catholiques romains qu'on appelle désormais "calendrier grégorien", par opposition au calendrier antérieur qu'on appelle "calendrier julien".

Ces deux calendriers ont en commun la particularité d'être fondés sur des années calendaires de 365 jours (années communes) ou de 366 jours (années bissextiles).
Le sieur Ugo Boncompagni n'a pas introduit d'années de (exactement) 365,25 jours ou 8760 heures ; heureusement ! Sinon nous aurions des jours de 8760/365,25 = 23h59min0,862s. Ni d'années de (exactement) 366,34567654323456 jours ou 8784 heures qui conduiraient à des jours de 23h58min38,475s. Alleluia ! alleluia ! qu'il en soit remercié : c'est suffisamment le bordel comme ça !

Ces deux calendriers sont également caractérisés par une curieuse division de l'année en douze mois inégaux, alternant plus ou moins régulièrement des mois de 30 jours pour quatre d'entre eux ou de 31 jours pour sept autres.
Un douzième mois plus court agrémente le tout : il compte 28 jours les années communes, 29 les années bissextiles. Chance ! il est toujours placé en deuxième position dans l'année...

L’innovation du calendrier grégorien est la création de deux espèces de siècle, de longueurs inégales. Alors qu'un siècle julien compte toujours 36 525 jours, l'un des siècles grégoriens vaut 36 524 jours (dans trois cas sur quatre), l'autre vaut 36 525 jours (pour le quart restant). (C'est le prix à payer pour ne pas avoir à moissonner en décembre.)

Coup de bol : la semaine est de sept jours dans les deux calendriers. (Il a fallu attendre les étasuniens d'Amérique du Nord pour saloper cette belle constance, avec l'introduction de semaines variables : voir la fonction NO.SEMAINE() d'Excel ; mais c'est une autre histoire...)

Autre coup de bol, une période de quatre siècles grégoriens correspond à 20 871 semaines exactement. ainsi, sachant que le 23 janvier 2014 est un jeudi, il en sera de même des 23 janvier de 2414, 2814, 3214, etc.
C'est rassurant. Très-rassurant. Et très-utile à savoir. Surtout pour les jeunes.

Bref, ce que j'écrivais dans mon précédent message n'est que la pure description de ce foutoir. Pas le moindre raisonnement là-dedans...

Venons-en maintenant au raisonnement :

Soit une personne courageuse. Elle a hier (22 janvier) travaillé douze heures.

Sachant qu'un jour compte vingt-quatre heures, elle a travaillé 12/24=0,5 jour.
Ce qui correspond à 0,5/31= un soixante-deuxième du dit mois de janvier ;
mais aussi à 0,5/30= un soixantième d'un mois d'avril ou d'un mois de septembre ;
et, pourquoi pas, à 0,5/29 = un cinquante-huitième d'un mois de février d'une année bissextile ;
et aussi à 0,5/28 = un cinquante-sixième d'un mois de février d'une année commune.
Par conséquent, 12 heures valent, au choix, 1/62[SUP]éme[/SUP] ou 1/60[SUP]éme[/SUP] ou 1/58[SUP]éme[/SUP] ou 1/56[SUP]éme[/SUP] de mois, mais, sans choix possible, un demi-jour. Toujours. En mars, en novembre, en février. En 2012, en 1898 et même en 1947.

Fin du raisonnement.

(Rêvons : il ne reste plus qu'à rétablir la République Une et Indivisible pour retrouver le calendrier qui va avec. Sans être parfait, il simplifie grandement les choses.)


Bonne nuit !


ℝOGER2327
#7127


Jeudi 26 Décervelage 141 (Escrime - Vacuation)
4 Pluviôse An CCXXII, 1,5592h - perce-neige
2014-W04-4T03:44:31Z
 

Lone-wolf

XLDnaute Barbatruc
Re : Calendrier automatique

Bonjour Roger,

il ne fallait pas te casser la tête avec ça. :eek:

Pour moi, en mathématique, 28 - 29 et 30 ne sont et ne seront jamais supérieurs à 31.

Si tu fait une macro en disant: ( b2 = 28 ) si b2.value >= 31 alors Msgbox, quel serait le résultat? Possible ou pas possible?

Mais si tu ecris : If Left(Date, 2) > 22 And Left(Date, 5) > 0 Then: Mois = Mois + 1: Range("c2").Value = Mois

Je pense que tu connaît déjà le résultat.



A+ :cool:
 
Dernière édition:

Lone-wolf

XLDnaute Barbatruc
Re : Calendrier automatique

Rebonjour à tous,

@Modeste geedee

L'erreur en nombre de jour est inferieure à 1 jour (Classeur avec les formules)

Désolé, mais tu te trompes. Le resultat du classeur est juste.


J'ai fait un nouveau classeur (+ macro) pour voir les jours éxacts qui se sont écoulé depuis mon jour de naissance, j'aimerais bien que tu y jettes un coup d'oeil.




A+ :cool:
 

Pièces jointes

  • Classeur1.xls
    38 KB · Affichages: 88
  • Classeur1.xls
    38 KB · Affichages: 88
  • Classeur1.xls
    38 KB · Affichages: 87
Dernière édition:

Modeste geedee

XLDnaute Barbatruc
Re : Calendrier automatique

Bonsour®
Désolé, mais tu te trompes. Le resultat du classeur est juste.
J'ai fait un nouveau classeur (+ macro) pour voir les jours éxacts qui se sont écoulé depuis mon jour de naissance, j'aimerais bien que tu y jettes un coup d'oeil.

:confused:
quel est le problème que tu veux faire ressortir ???

- quand on fait des calculs avec des dates, il est important de bien savoir ce qui se passe aux bornes : :rolleyes:
exemple :
le mois de janvier comporte 31 jours
si l'on souhaite calculer le nombre de jour du 01/01/2014 au 31/01/2014

à ton idée, quelle est la bonne formule : :confused:
"31/01/2014"-"01/01/2014"
ou bien
"01/02/2014"-"01/01/2014"
;)

autre contrainte :
- quand on fait des calcul de dates, il est important de savoir quoi on manipule ...
date stricte (aujourdhui()) jj/mm/aaaa
ou bien
date étendue (Maintenant() jj/mm/aaaa hh:mm:ss

l'arrondi au niveau des calculs devient important selon le cas et peut atteindre 1 jour
 
Dernière édition:

Discussions similaires