Formules de calcul : Différence entre versions

Aller à : navigation, rechercher
(Formules de tarification)
(Calcul du temps de vol)
Ligne 1 : Ligne 1 :
 +
=Calcul du temps de vol=
 +
 
=Calcul du temps de vol=
 
=Calcul du temps de vol=
 
==Introduction==
 
==Introduction==
Pour calculer le temps de vol, chaque club utilise en général une méthode bien à lui.
+
Pour calculer le temps d'une activité (exemple : vol), les règles diffèrent selon les structures.
  
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.
+
OpenFlyers propose une zone de saisie libre devant contenir la formule choisie par la structure.
 
+
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 [[Talk:Formula_pool|l'onglet discussion]] de cette page pour demander de l'aide.
+
  
 
==Sexacentimal==
 
==Sexacentimal==
Les valeurs de temps de vols sont en "sexacentimal".
+
En base de données, les temps et les compteurs sont stockés selon le plus petit multiple commun au système décimal (centième) et au système sexagésimale (hh min). Nous avons appelé cela le format ''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 :
+
Cela permet de stocker les valeurs de temps sous la forme d'un entier. Cela supprime donc tout problème d'arrondi qui pourrait être problématique pour les additions.
pour arrondir à 5 minutes : roundCeil(X,50)
+
  
pour arrondir à 10 centièmes : roundCeil(X,60)
+
*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 de formules :
 +
*pour arrondir à 5 minutes : roundCeil(X,50)
 +
*pour arrondir à 10 centièmes : roundCeil(X,60)
  
 
==Définitions==
 
==Définitions==

Version du 23 mars 2015 à 16:56

Calcul du temps de vol

Calcul du temps de vol

Introduction

Pour calculer le temps d'une activité (exemple : vol), les règles diffèrent selon les structures.

OpenFlyers propose une zone de saisie libre devant contenir la formule choisie par la structure.

Sexacentimal

En base de données, les temps et les compteurs sont stockés selon le plus petit multiple commun au système décimal (centième) et au système sexagésimale (hh min). Nous avons appelé cela le format sexacentimal.

Cela permet de stocker les valeurs de temps sous la forme d'un entier. Cela supprime donc tout problème d'arrondi qui pourrait être problématique pour les additions.

  • 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 de formules :

  • pour arrondir à 5 minutes : roundCeil(X,50)
  • pour arrondir à 10 centièmes : roundCeil(X,60)

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

roundCeil

roundCeil(X,Y)

Arrondi la valeur X au nombre supérieur multiple de l'unité Y le plus proche Exemple :

roundCeil(114,100) donne 200
roundCeil(114,10) donne 120

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 centièmes

%COUNTER_ARRIVAL - %COUNTER_DEPARTURE + 30

Différence des compteurs plus 5 minutes

%COUNTER_ARRIVAL - %COUNTER_DEPARTURE + 50

Différence des compteurs arrondie au 5 minutes les plus proches plus 5 minutes

roundCeil(%COUNTER_ARRIVAL - %COUNTER_DEPARTURE - 25, 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

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)