Meilleur auteur de réponses
How measure spans between old and new Date

Question
-
Hello,
Svp assiste moi:
Utiliser measure spans: ancien et nouveau Date
Merci
Arnold
cls # $date = '12.07.2012' # $templ = 'dd.MM.yyyy' # [DateTime]::Parse($date, $templ, $null) $oldD = @( "09.08.1930", "14.10.1929", "14.10.1924", "23.10.1921", "27.11.1925", "24.10.1933", "24.10.1933", "03.06.1931", "15.09.1932", "21.01.1896", "18.02.1926", "21.02.1931", "09.04.1925", "16.03.1905", "16.07.1926", "05.03.1931", "26.07.1929", "22.05.1919", "27.05.1931", "22.11.1926", "19.11.1912", "01.07.1919", "08.02.1914", "05.12.1934", "15.12.1925") # measure date for each forEach($date in $first = get-date -date $oldD -f dd.MM.yyyy $last = get-date -date "31.12.1934" -f dd.MM.yyyy # last day of month $spann = New-TimeSpan -Start $first -End $last) “The Date-Span is {0:g}” -f $spann
- Modifié arnold_ jeudi 23 mai 2019 13:53
Réponses
-
Bonjour
Voici la solution pour avoir une réponse utilisable.
Avec Excel sa fonctionne très bien.
700 est un multiple de 28 qui permet d'exploiter les dates depuis l'an 1200 decal=255675 Sa donne: =DATEDIF(h3+decal;h5+decal;"y")&" Ann., " &DATEDIF(h3+decal;h5+decal;"ym")&" Mo., " &DATEDIF(h3+decal;h5+decal;"md")&" Jrs." Obs. Le découpage en années mois et jours d'une durée calendaire n'a aucune valeur mathématique, les durées des mois et années n'étant pas des constantes. En VB (Excel 2007; pour les autre version: non tester): Function NewDateDif(dat1 As Date, dat2 As Date) As String Dim ans%, mois%, jours% ans = Year(dat2) - Year(dat1) + (DateSerial(2000, Month(dat2), Day(dat2)) < DateSerial(2000, Month(dat1), Day(dat1))) mois = Month(dat2) - Month(dat1) + (Day(dat2) < Day(dat1)) If mois < 0 Then mois = mois + 12 jours = dat2 - DateSerial(Year(dat2), Month(dat2), Day(dat1)) If jours < 0 Then jours = dat2 - DateSerial(Year(dat2), Month(dat2) - 1, Day(dat1)) NewDateDif = IIf(ans, ans & " an" & IIf(ans > 1, "s", ""), "") & " " & _ IIf(mois, mois & " mois", "") & " " & IIf(jours, jours & " jour" & IIf(jours > 1, "s", ""), "") NewDateDif = Application.Trim(NewDateDif) 'SUPPRESPACE End Function
Merci a vous!
Arnold
- Marqué comme réponse arnold_ vendredi 31 mai 2019 14:56
Toutes les réponses
-
Bonjour,
ce forum utilise le français. Il est fortement conseillé d'utiliser ce langage pour obtenir les meilleures réponses possible.
This forum is adapted for the french language. Please English equivalent forums if french is not confortable for you.
Thierry DEMAN-BARCELO. Offce Apps&Services MVP. MCSE:Messaging 2016,MCSE:Server Infrastructure 2012(86 MCPs). MCSA Office 365,Microsoft 365 Certified: Messaging Administrator Associate,Modern Desktop Administrator Associate http://base.faqexchange.info
-
-
Je pense qu'il y aura plus de réponses... même l'objectif demandé n'est pas très clair.
S'agit-il de comparer la date du "31.12.1934" par rapports aux différentes dates de la liste ?
Thierry DEMAN-BARCELO. Offce Apps&Services MVP. MCSE:Messaging 2016,MCSE:Server Infrastructure 2012(86 MCPs). MCSA Office 365,Microsoft 365 Certified: Messaging Administrator Associate,Modern Desktop Administrator Associate http://base.faqexchange.info
-
-
exemple de fin de script:
# measure date for each forEach($date in $OldD){ $first = get-date -date $date -f dd.MM.yyyy $spann = New-TimeSpan -Start $first -End $last echo $spann.days # "The Date-Span is {0:g}" -f $Spann }
=> Différence en jour entre la date de référence et chacune des dates
Thierry DEMAN-BARCELO. Offce Apps&Services MVP. MCSE:Messaging 2016,MCSE:Server Infrastructure 2012(86 MCPs). MCSA Office 365,Microsoft 365 Certified: Messaging Administrator Associate,Modern Desktop Administrator Associate http://base.faqexchange.info
- Proposé comme réponse Thierry DEMAN-BARCELÒMVP vendredi 24 mai 2019 07:28
-
-
Bonjour
Voici la solution pour avoir une réponse utilisable.
Avec Excel sa fonctionne très bien.
700 est un multiple de 28 qui permet d'exploiter les dates depuis l'an 1200 decal=255675 Sa donne: =DATEDIF(h3+decal;h5+decal;"y")&" Ann., " &DATEDIF(h3+decal;h5+decal;"ym")&" Mo., " &DATEDIF(h3+decal;h5+decal;"md")&" Jrs." Obs. Le découpage en années mois et jours d'une durée calendaire n'a aucune valeur mathématique, les durées des mois et années n'étant pas des constantes. En VB (Excel 2007; pour les autre version: non tester): Function NewDateDif(dat1 As Date, dat2 As Date) As String Dim ans%, mois%, jours% ans = Year(dat2) - Year(dat1) + (DateSerial(2000, Month(dat2), Day(dat2)) < DateSerial(2000, Month(dat1), Day(dat1))) mois = Month(dat2) - Month(dat1) + (Day(dat2) < Day(dat1)) If mois < 0 Then mois = mois + 12 jours = dat2 - DateSerial(Year(dat2), Month(dat2), Day(dat1)) If jours < 0 Then jours = dat2 - DateSerial(Year(dat2), Month(dat2) - 1, Day(dat1)) NewDateDif = IIf(ans, ans & " an" & IIf(ans > 1, "s", ""), "") & " " & _ IIf(mois, mois & " mois", "") & " " & IIf(jours, jours & " jour" & IIf(jours > 1, "s", ""), "") NewDateDif = Application.Trim(NewDateDif) 'SUPPRESPACE End Function
Merci a vous!
Arnold
- Marqué comme réponse arnold_ vendredi 31 mai 2019 14:56