Erstellen eines Monatskalenders.
Ich verwende ein Systemnotizbuch, aber da die Größe der Nachfüllung (82 mmW x 140 mmL) besonders ist, ist es schwierig, sie zu erhalten, der Preis ist relativ hoch, und es war eine vergangene Zeit, in der ich darüber nachdachte, sie von Hand herzustellen, aber zu dieser Zeit nachzufüllen Ich habe ein maßgeschneidertes Papier hergestellt, und es war noch leeres Papier übrig, also habe ich nach langer Abwesenheit darüber nachgedacht, es für das nächste Jahr herzustellen. Da es einmal im Jahr ist, kann es handgefertigt werden. Da es jedoch eine spezielle Programmierumgebung gibt, erstellen wir einen Mechanismus, mit dem jedes Jahr automatisch ein Kalender ausgegeben werden kann. Deshalb habe ich versucht zu programmieren.
Verwenden Sie die Funktion "Seriendruck" der Textverarbeitungssoftware. Daher können Kalenderdaten für den Seriendruck erstellt werden. Die Vorlage für "Seriendruck" ist eine Vorlage, die für einen Monat in einem Spread angezeigt wird (siehe Abbildung unten).
Da ein Monat zu einem Datensatz wird, kann eine Kalenderdatenbank wie die unten gezeigte für den Seriendruck verwendet werden, wenn sie erstellt wird. Dieses Mal habe ich versucht, diese Tabelle mit Python zu erstellen.
Der Code lautet wie folgt
.ruby:monthly_calendar.py
import pandas as pd
import numpy as np
import calendar as cl
import os
"""
Vorerst abgeschlossene Version
"""
file='f.csv'
fout=open(file,'w',encoding="utf_8")
#Jahr zu schaffen
YEAR=2021
"""
Erstellen Sie Daten mit der while-Schleife
m--> month
D--> date
out -->Sammeln Sie hier Daten
"""
m=1
out=""
while m < 13:
MR=cl.monthrange(YEAR,m)
out=("{0},".format(cl.month_name[m]))
D=0
while D < 37:
while D < MR[0]:
out+=("*,")
D+=1
if D < MR[1]+MR[0]:
out+=("{0},".format(str(D-MR[0]+1)))
D+=1
else:
out+=("*,")
D+=1
out=out[:-1]
out='{0}\n'.format(out)
print(out)
fout.write(out)
m+=1
fout.close()
body_df=pd.read_csv('f.csv',index_col=0,
names=['D0','D1','D2','D3','D4','D5','D6','D7','D8','D9','D10',
'D11','D12','D13','D14','D15','D16','D17','D18','D19','D20',
'D21','D22','D23','D24','D25','D26','D27','D28','D29','D30',
'D31','D32','D33','D34','D35' ,'D36'])
print(body_df)
body_df.to_csv('f_out.csv')
os.remove('f.csv')
Es gibt einige Verbesserungen und Funktionserweiterungen wie "Monat" am Anfang des Index der Datenbank und manuelle Eingabe von Feiertagen. Ich werde anfangen zu arbeiten, wenn ich Lust dazu habe.
Recommended Posts