Comment arrondir ou arrondir les dates ?Bonjour,
Si j'ai un tas d'heures d'ouverture au format MMJJAAAA hh:mm et que je voudrais fixer l'une de ces dates qui se produisent entre 1h du matin et 3h59 pour "arrondir" à 4h du matin.
En d'autres termes, si mon heure d'ouverture est le 09/10/2020 à 3h12, j'ai besoin que cela soit arrondi au 09/10/2020 à 4h00.
Inversement, j'ai Closetimes dans le même format et je voudrais fixer l'une de ces dates qui se produisent entre 1h du matin et 3h59 pour "arrondir" à 1h du matin.
En d'autres termes, si mon heure de fermeture est le 09/10/2020 à 3h12, j'ai besoin que cela soit arrondi au 09/10/2020 à 1h00.
J'utilise l'éditeur de formules dans JMP pour toutes mes formules, donc si je peux coller la solution dans l'éditeur de formules, ce serait génial !
J'ai joint un exemple de tableau.
Merci pour toute aide à ce sujet.
Fiona
Personnalisation de masseRe : Comment arrondir les dates à la hausse ou à la baisse ?Merci beaucoup.
Cela marche!!
Re : Comment arrondir les dates à la hausse ou à la baisse ?Il existe très probablement un moyen plus propre / plus efficace de le faire, mais ceux-ci devraient fonctionner:
Temps d'ouverture arrondi :
If(In Hours(1) <= Time Of Day(:Opentime) < In Hours(4),
(:Opentime - Time Of Day(:Opentime)) + In Hours(4),
:Opentime
)
Même idée pour la clôture arrondie :
If(In Hours(1) <= Time Of Day(:Closetime) < In Hours(4),
(:Closetime - Time Of Day(:Closetime)) + In Hours(1),
:Closetime
)
Solution construite sur les formules "pré-faites" par JMP lorsque vous faites un clic droit sur le nom de la colonne sur la colonne de date pour Date et Moment de la journée :

Re : Comment arrondir les dates à la hausse ou à la baisse ?Ce script illustre l'approche :
Names Default to Here( 1 );
date time = 09Oct2020:03:12;
rounded date time = date time - Modulo( date time, In Hours( 1 ) ) + In Hours( 1 );
formatted rounded date time = Format( rounded date time, "m/d/y h:m" );
Show( date time, formatted rounded date time );
La formule réelle peut être compressée dans cette expression, en supposant que vous souhaitiez une valeur numérique avec l'attribut de colonne Format souhaité :
:date time - Modulo( :date time, In Hours( 1 ) ) + In Hours( 1 )
Notez qu'arrondir à l'heure la plus proche supprimerait simplement l'ajout d'une heure à la fin de l'expression.