Création d'un calendrier hebdomadaire 2021 (recharge pour notebook système) avec Ruby

Objectif:

Créer un calendrier hebdomadaire.

Contexte:

La taille de la recharge du portable système (82 mm L x 140 mm L) est particulière, et même si j'ai commencé à l'utiliser, il était difficile de l'obtenir, alors j'ai pensé à le fabriquer à la main dans le passé. À cette époque, j'avais fabriqué une recharge de papier sur mesure, et il y avait un surplus de papier vierge à ce moment-là, alors j'ai pensé à le fabriquer à la main pour la première fois depuis longtemps l'année prochaine. Comme c'est une fois par an, il peut être fait à la main, mais comme il existe un environnement de programmation spécial, créons un mécanisme qui peut automatiquement générer un calendrier chaque année. C'est pourquoi je l'ai programmé.

impression:

Utilisez la fonction «publipostage» du logiciel de traitement de texte. Par conséquent, les données de calendrier pour le publipostage peuvent être créées. Le modèle de "publipostage" est un modèle qui s'affiche pendant une semaine dans une planche, comme illustré dans la figure ci-dessous. La même chose s'applique à un modèle qui emballe une semaine d'un côté comme un cahier d'efficacité. L_andR_.png Données: un enregistrement par semaine, donc si vous avez une base de données de calendrier comme celle illustrée ci-dessous, vous pouvez l'utiliser pour le publipostage. J'ai fait cette table avec du rubis. weekly.png

Le code du rubis est le suivant.

.weekly_calendar.rb



# weekly

require 'date'
day = Date.new(2020,12,28)  #Dernier mois de décembre commençant le lundi
last = Date.new(day.year+1, day.month, day.mday)
weekdays = {0 => 'journée', 1 => 'Mois', 2 => 'Feu', 3 => 'eau', 4 => 'bois', 5 => 'Argent', 6 => 'sol'}
 while day < last do
  records=Array.new
  records.push(day.strftime("%Y%W,%Y,%W"))
  dday = day
    while dday < day+7 do 
     wday = weekdays[dday.wday]
     records.push(dday.strftime("%b,%-m,%d,%w,#{wday},%a,"))
     dday = dday+1
    end
  print records.join(',')
  print  "\n"
  day = day+7
 end

Le fichier d'en-tête a été produit avec le code suivant et collé au-dessus de la sortie ci-dessus. Si vous sortez csv et le chargez dans libreoffice calc, il s'agira de données de "fusion et publipostage".

.header.rb


# weekly header

printf "%s,%s,%s,","yrwk","yr","wkwk"
printf "%s,%s,%s,%s,%s,%s,%s,","mte1","mtn1","dyn1","wkn1","wkj1","wke1","s1"
printf "%s,%s,%s,%s,%s,%s,%s,","mte2","mtn2","dyn2","wkn2","wkj2","wke2","s2"
printf "%s,%s,%s,%s,%s,%s,%s,","mte3","mtn3","dyn3","wkn3","wkj3","wke3","s3"
printf "%s,%s,%s,%s,%s,%s,%s,","mte4","mtn4","dyn4","wkn4","wkj4","wke4","s4"
printf "%s,%s,%s,%s,%s,%s,%s,","mte5","mtn5","dyn5","wkn5","wkj5","wke5","s5"
printf "%s,%s,%s,%s,%s,%s,%s,","mte6","mtn6","dyn6","wkn6","wkj6","wke6","s6"
printf "%s,%s,%s,%s,%s,%s,%s\n","mte7","mtn7","dyn7","wkn7","wkj7","wke7","s7"

Les informations sur les vacances seront corrigées manuellement. Je voudrais l'améliorer pour qu'il puisse être inséré automatiquement une fois les données préparées, mais le calendrier est indécis car c'est un travail une fois par an.

Recommended Posts

Création d'un calendrier hebdomadaire 2021 (recharge pour notebook système) avec Ruby
Créer un calendrier avec Ruby
[Pour les débutants] Procédure de création d'un contrôleur à l'aide de rails
Un mémorandum pour créer un enregistreur étendu à l'aide de org.slf4j.Logger
Création d'un hôte Docker sur AWS à l'aide de Docker Machine (mémorandum personnel)
Procédure de publication d'une application à l'aide d'AWS (4) Création d'une base de données
Créer une loterie avec Ruby
Explication de Ruby on rails pour les débutants ③ ~ Création d'une base de données ~
[Android] Créer un calendrier à l'aide de GridView
[Mémo personnel] Écriture d'un fichier à l'aide de BufferedWriter
[Mémo personnel] Lecture de fichiers à l'aide de BufferedReader