Concepts de base : jours de repos, préférences et heures

1 – Jours travaillés et jours de repos, labels de jours

Le fait qu'un jour soit un jour travaillé ou un jour de repos est une information importante pour placer les activités.

Le programme a donc prévu de définir dans des préférences les jours de repos répétitifs. Ces jours en général le samedi et le dimanche, et un certain nombre de fêtes légales.

Le programme contient un mécanisme de prise en compte des jours de fête. Malheureusement ces fêtes sont variables selon les pays et même à l'intérieur de certains pays selon les régions ou états. C'est pourquoi il n'est fourni qu'une base qui permettra à chaque utilisateur de définir ses jours de repos répétitifs en fonction des réglementations et coutumes locales.

Certains jours sans être de repos peuvent présenter un intérêt particulier pour l'utilisateur (par exemple des anniversaires familiaux). C'est pourquoi ce mécanisme permettra aussi de définir des labels de jours répétitifs.

2 - Paramètres

Les paramètres contiennent les options d'affichage : pas pour les minutes, hauteur des lignes de listes, jeu de caractères par défaut pour fichiers PDF,

3- Préférences

Les préférences sont des informations choisies par l'utilisateur qui sont prises en compte par défaut pour chaque jour. Leurs modifications n'ont pas d'impact sur les données qui ont été rentrées par l'utilisateur et enregistrées dans la base de données. Par contre elles sont prises en compte pour les jours qui utilisent les informations par défaut, et pour la création de taches et évènements.

Elles sont initialisées au premier lancement du programme en fonction du code pays fourni par Java, et sauvegardées entre les exécutions. Elles peuvent être modifiées ou réinitialisées par l'utilisateur.

On trouvera dans les préférences :

    • la définition des noms de types de tâches et le choix du type par défaut,
    • les défauts pour durée de tâche et heure de début de journée,
    • la définition des tâches et évènements périodiques,
    • la définition des jours spéciaux répétitifs (jours de repos ou jours à label) et de leur option de report.

Le programme permet de définir 4 types de jour de repos :

    • jours de semaine, par exemple Samedi, Dimanche,
    • jours annuels qui sont fixes tous les ans (par exemple le 25 décembre fête de Noël), avec une option de report, car selon les pays il peuvent être ou ne pas être reportés au lundi lorsqu'ils tombent un dimanche ou un samedi,
    • jour à rang, défini par un mois, un jour de semaine et un rang du jour dans le mois de 1 à 5, 5 indiquant dernier du mois (par exemple Thanksgiving dernier jeudi de novembre),
    • jour relatif à la fête de Pâques occidentale (par exemple Vendredi saint 2 jours avant Pâques).

Pour les jours à label, on a les mêmes possibilités excepté les jours de semaine.

3 - Défauts pour jours de repos

Pour faciliter la définition de ces dates j'ai introduit des défauts pour initialiser ces dates avec les fêtes légales qui ne sont pas un dimanche tous les ans. Malheureusement ces fêtes varient non seulement avec les pays mais aussi avec les régions ou états de ces pays...

Je me suis limité à 4 options : France, Royaume Uni, Etats-Unis, autres.

La France est le pays qui posent le moins de problème : les fêtes légales sont les mêmes pour presque tout le monde : 8 jours annuels non reportés et 3 jours relatifs à Pâques.

Le Royaume Uni a 8 jours nationaux (3 jours annuels reportés s'il tombent un Samedi ou un Dimanche, 2 jours relatifs à Pâques et 3 jours à rang), et des jours particuliers pour l'Ecosse, le Pays de Galles et l'Irlande du nord. Je me suis limité aux jours nationaux que l'utilisateur devra compléter si besoin.

Aux Etats-Unis les jours dépendent de chaque état. Il existe cependant 10 jours de fête fédéraux pour certains services fédéraux et sont plus ou moins pris en compte par les états. Je fournis cette liste fédérale, et chaque utilisateur devra l'adapter en fonction de son Etat.

Pour les autres pays, je fournis une liste de 7 jours qui sont utilisés dans de nombreux pays. Chacun pourra y retrancher et ajouter des jours.

4 - Semaines

Les usages en matière de définition de semaine et de numérotation de semaine varient avec les pays. Pour la plupart des pays d'Europe de l'ouest la semaine commence le lundi et la semaine 1 de l'année est celle qui contient le premier jeudi de l'année. Pour les Etats-Unis, la semaine commence le dimanche et la semaine 1 est la semaine du premier janvier. Les informations fournies par Java sont en principe adaptées aux usages locaux et nous utilisons ces informations.

5 – Heures

Les heures de la journée peuvent être présentées en format 24 heures, ou en format 12 heures avec AM PM. Cependant les heures peuvent dépasser minuit, et il faut présenter ces heures situées dans la nuit ou la matinée du lendemain. Par analogie avec AM et PM, nous avons choisi de les faire suivre de EM.