Formules de calcul
Calcul du temps de vol
Introduction
Pour calculer le temps de vol, chaque club utilise en général une méthode bien à lui.
Par conséquent comme il nous semble illusoire de proposer toutes les méthodes possibles directement dans OpenFlyers, nous avons préféré mettre en place une zone de saisie libre devant contenir la formule choisie par le club.
Afin de faciliter la démarche de détermination de formule, nous vous proposons ci-après une liste de formules avec la description de leur comportement attendu.
Ci vous ne trouvez pas votre bonheur, n'hésitez-pas à rajouter de nouvelles formules ou à utiliser l'onglet discussion de cette page pour demander de l'aide.
Définitions
variables
%TIME_DEPARTURE
Heure de début saisie dans le formulaire
%TIME_ARRIVAL
Heure de fin saisie dans le formulaire
%COUNTER_DEPARTURE
Compteur départ saisi dans le formulaire
%COUNTER_ARRIVAL
Compteur arrivé saisi dans le formulaire
Fonctions
roundDuration
roundDuration(X,Y)
Arrondi la valeur X à l'unité Y la plus proche Exemple :
roundDuration(114,100) donne 100
roundDuration(114,10) donne 110
Attention : Les valeurs de temps de vols sont en "sexacentimal".
- En base les temps et les compteurs sont stockés selon le dénominateur commun au système décimal (centième) et au système sexagésimale (hh min). Nous avons appelé cela le format "sexacentimal"
- Ainsi ils sont stockés sous un entier et il n'y a pas d'arrondi (toujours problématique en cas d'addition)
1 heure = 600 sexacentièmes 1 minute = 10 sexacentièmes 5 minutes = 50 sexacentièmes
1 centième de minute = 6 sexacentièmes 10 centième de minute (=1 dixième de minute) = 60 sexacentièmes
Exemples :
pour arrondir à 5 minutes : roundDuration(X,50)
pour arrondir à 10 centièmes : roundDUration(X,60)
max
max(X,Y)
donne le max entre X et Y
Formules
- Les fonctions autorisées sont
max(valeur1,valeur2) : retient la plus grande des 2 valeurs
abs(valeur) : retour la valeur absolue
roundCeil(valeur,cible) : arrondie la valeur jusqu'à la cible
- Les mots clé autorisés
%DURATION : durée du vol
%COUNTERDEPARTURE : valeur du compteur de départ
%COUNTERARRIVAL : valeur du compteur d'arrivée
Durée du vol
%DURATION
Différence des compteurs
%COUNTER_ARRIVAL - %COUNTER_DEPARTURE
Durée du vol arrondie à 5 minutes
roundCeil(%DURATION, 50)
Différence des compteurs plus 5 minutes
%COUNTER_ARRIVAL - %COUNTER_DEPARTURE + 50
Différence des compteurs arrondie à 5 minutes plus 5 minutes
roundCeil(%COUNTER_ARRIVAL - %COUNTER_DEPARTURE, 50) + 50
Différence des compteurs arrondie à 10 centièmes
roundCeil(%COUNTER_ARRIVAL - %COUNTER_DEPARTURE, 60)
Le plus grand entre la durée du vol et la différence des compteurs
max(%DURATION, %COUNTER_ARRIVAL - %COUNTER_DEPARTURE)
Le plus grand entre la durée du vol et la différence des compteurs arrondie à 5 minutes
max(%DURATION,roundCeil(%COUNTER_ARRIVAL - %COUNTER_DEPARTURE, 50))
Cette formule calcule :
- la différence des compteurs et l'arrondi à 5 minutes
- la valeur de la durée de vol saisie par le pilote
Puis elle prend le plus grand des deux
Le plus grand entre la durée du vol, arrondie à 5 minutes, et la différence des compteurs, arrondie à 5 minutes,
max(roundCeil(%DURATION,50),roundCeil(%COUNTER_ARRIVAL - %COUNTER_DEPARTURE, 50))
Cette formule calcule :
- la différence des compteurs et l'arrondi à 5 minutes
- la valeur de la durée de vol saisie par le pilote et l'arrondi à 5 minutes
Puis elle prend le plus grand des deux
Formules de tarification
Définitions
Outre les définitions toujours valides pour le calcul du temps de vol, voici d'autres définitions : A rédiger
Voir Formules en anglais
Formules
Motoplaneur : tarification à l'heure de vol ET à l'utilisation du moteur
Pour cela, on suppose que les compteurs sont utilisés et qu'ils prennent en compte le temps d'utilisation du moteur :
%DURATION * $FLIGHT_HOUR_PRICE + (%COUNTER_ARRIVAL - %COUNTER_DEPARTURE) * $ENGINE_HOUR_PRICE
Avion : réduction lorsque le compte pilote a un solde positif
$C2 concerne le tarif horaire de l'avion
$S le solde positif qui doit être atteint pour bénéficier de la réduction
$R le montant horaire de la réduction obtenue dans ce cas
roundCeil((((getBalance(%PILOT)>$S ? ($C2-$R) : $C2)*%DURATION/600)-0.5),1)
Avion : réduction lorsque le vol se fait après une certaine heure
$C2 concerne le tarif horaire de l'avion
$C2R concerne le tarif horaire réduit de l'avion après une certaine heure
659 correspond à 06:59 en temps UTC
Dans ce cas la formule considère que dès 700, la réduction s'applique.
roundCeil(((((formatDate('hmm',%START_DATE)>659)?$C2R:$C2)*%DURATION/600)-0.5),1)