Last active
December 20, 2023 07:17
-
-
Save sunny/484e74120e3261fa0470f1d790de8736 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Calcul du nombre de jours par niveau de fréquentation pour Brouillon Coffee. | |
# | |
# Pour lancer le script, il faut installer la librairie `jours_feries_france`. | |
# Dans un terminal, exécuter la commande suivante: | |
# $ gem install jours_feries_france | |
# | |
# Puis, exécuter le script avec la commande suivante pour générer un fichier | |
# CSV nommé `days.csv`: | |
# $ ruby brouillon-days.rb > days.csv | |
# Librairie standard de Ruby permettant de manipuler des dates | |
require "date" | |
# Permets d’importer des librairies tierces | |
require "rubygems" | |
# Librairie permettant de déterminer si un jour est férié en France | |
require "jours_feries_france" | |
# Dictionnaire des noms de mois en français, en fonction de leur numéro | |
MONTH_NAMES = { | |
1 => "Janvier", | |
2 => "Février", | |
3 => "Mars", | |
4 => "Avril", | |
5 => "Mai", | |
6 => "Juin", | |
7 => "Juillet", | |
8 => "Août", | |
9 => "Septembre", | |
10 => "Octobre", | |
11 => "Novembre", | |
12 => "Décembre", | |
} | |
# Année de référence | |
year = Date.today.next_year.year | |
# Pour chaque mois de l'année | |
1.upto(12) do |month| | |
# On définit des compteurs de jours par niveau de fréquentation | |
low = 0 | |
median = 0 | |
high = 0 | |
# Premier et dernier jour du mois | |
month_start = Date.new(year, month, 1) | |
month_end = month_start.next_month.prev_day | |
# Pour chaque jour du mois | |
month_start.upto(month_end) do |day| | |
# On incrémente le compteur correspondant | |
if day.saturday? || day.sunday? || JoursFeriesFrance.est_ferie(day) | |
high += 1 | |
elsif day.tuesday? || day.thursday? | |
low += 1 | |
elsif day.monday? || day.friday? | |
median += 1 | |
end | |
end | |
# On affiche le résultat au format CSV | |
puts "#{MONTH_NAMES[month]} #{year};;" | |
puts ";Bas (mardi, jeudi);#{low}" | |
puts ";Médian (lundi, vendredi);#{median}" | |
puts ";Haut (samedi, dimanche, ferié);#{high}" | |
end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment