kalender programmieren

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
marteng
User
Beiträge: 4
Registriert: Dienstag 18. September 2012, 13:23

hallo leute,

ich habe folgendes problem.

ich möchte gern einen kalender für einen bestimmten zeitraum erstellen.

nun habe ich 3 listen von daten, die sich alle gegenseitig zu vollständig gefüllten monaten in diesem zeitraum ergänzen.

ich stelle mir das so vor, dass ich am ende eine grafik habe, in der ganz normal zu diesem zeitraum die monate aufgeführt sind (z.b. die monatsblöcke in 3 spalten/4 zeilen für ein jahr), aber die einzelnen einträge je nach listenzugehörigkeit frabcodiert sind.

geht das irgendwie zu bewerkstelligen, dass ich einzelne einträge in dem kalender so manipuliert bekomme?

ich habe bisher das modul
calendar
gefunden...kann damit auch arbeiten, erstellt mir aber nur einen gregoreanischen kalender für ein ganzes jahr...ich kann also zum beispiel keinen start- und endtag angeben?!

bitte um hilfe für meine fragen. gern auch tips zu anderen modulen als calendar :)

viele grüße, marteng
Benutzeravatar
mkesper
User
Beiträge: 919
Registriert: Montag 20. November 2006, 15:48
Wohnort: formerly known as mkallas
Kontaktdaten:

Hast du dir auch die Doku zu calendar angeschaut?
Z.B.

Code: Alles auswählen

itermonthdates(year, month)
scheint mir in dem Zusammenhang brauchbar zu sein.
Ansonsten lohnt auch ein Blick auf das datetime-Modul.
mutetella
User
Beiträge: 1695
Registriert: Donnerstag 5. März 2009, 17:10
Kontaktdaten:

Ein kleines Beispiel, was sich relativ einfach mit dem 'calendar'-Modul machen lässt:

Code: Alles auswählen

def mark_dates(dates):
    for week in calendar.Calendar().monthdatescalendar(2013, 1):
        for day in week:
            if day in dates:
                template = '>{0:2}<'
            else:
                template = ' {0:2} '
            print template.format(day.day),
        print '\n',

Code: Alles auswählen

>>> my_dates = (datetime.date(2013, 1, 14), datetime.date(2013, 1, 23))
>>> mark_dates(my_dates)
 31    1    2    3    4    5    6  
  7    8    9   10   11   12   13  
>14<  15   16   17   18   19   20  
 21   22  >23<  24   25   26   27  
 28   29   30   31    1    2    3  
mutetella
Entspanne dich und wisse, dass es Zeit für alles gibt. (YogiTea Teebeutel Weisheit ;-) )
BlackJack

``print '\n',`` würde ich ja durch ein einfaches ``print`` ersetzen. :-)
mutetella
User
Beiträge: 1695
Registriert: Donnerstag 5. März 2009, 17:10
Kontaktdaten:

Oh Mann, klar, wie doof ist das denn...? :mrgreen:
Entspanne dich und wisse, dass es Zeit für alles gibt. (YogiTea Teebeutel Weisheit ;-) )
Antworten