# DYNAMISCHER KALENDER MIT TERMINEN ```htmlmixed= <html> <head></head> <body> <h1> K A L E N D E R </h1> <!-- Wir brauchen das aktuelle auch, Datum um im Kalender den aktuellen Tag hervorzuheben.--> <!-- Falls KalenderMonat oder KalenderJahr nicht gesetzt ist mache folgendes: --hier müssen jetzt anhand von --now()-- die Berechnungen stattfinden.--> <cfif not IsDefined("AktuellerMonat") or not IsDefined("AktuellesJahr")> <cfset AktuellesDatum = now()> <!-- Alle folgenden Variablen, werden in Abhängigkeit von "AktuellesDatum" erzeugt --> <cfset AktuellerMonat=Month(AktuellesDatum)> <cfset AktuellerTag=Day(AktuellesDatum)> <cfset AktuellesJahr=Year(AktuellesDatum)> </cfif> <cfset AktuellesDatum = CreateDate(2019,AktuellerMonat,1)> <cfset zuruckDatum = DateAdd("m", -1, AktuellesDatum)> <cfset vorDatum = DateAdd("m", +1, AktuellesDatum)> <cfset zuruckMonat = Month(zuruckDatum)> <cfset vorMonat = Month(vorDatum)> <cfset zuruckJahr = Year(zuruckDatum)> <cfset vorJahr = Year(vorDatum)> <cfset TageImAktuellenMonat=DaysInMonth(AktuellesDatum)> <!-- Hier wird das Startdatum festgelegt. Das ist immer der 1.Tag im Monat. --> <cfset StartDatum = CreateDate(AktuellesJahr, AktuellerMonat, 1)> <!-- Hier wird festgelegt welcher Wochentag das Startdatum hat. Der Wochentag kann die Zahlen 1,..,7 annehmen, wobei 1 = Sonntag und 7 = Samstag, entspricht. --> <cfset StartWochentag = DayOfWeek(StartDatum)> <!-- Hier wird das Zieldatum festgelegt. Das ist immer der letzte Tag im Monat. --> <cfset ZielDatum = StartDatum + TageImAktuellenMonat-1> <!-- Hier wird festgelegt welcher Wochentag das Zieldatum hat. Der Wochentag kann die Zahlen 1,..,7 annehmen, wobei 1 = Sonntag und 7 = Samstag, entspricht. --> <cfset ZielWochentag = DayOfWeek(ZielDatum)> <cfset TagesSchrittweite = CreateTimeSpan(1, 0, 0, 0)> <cfset AktuellerMonatString = MonthAsString(AktuellerMonat)> <style> .kalender-table-border { border-width: 10px; border-style: solid; } .kalender-table-cell { vertical-align: middle; text-align: center; padding: 15px; } </style> <cffile action="read" file="Termine.txt" variable="Termine"> <cfset aTermine = ListToArray(Termine, "#Chr(10)##Chr(13)#")> <cfset MonatsTermine = ArrayNew(1)> <cfloop array="#aTermine#" index="Row"> <cfset TerminRow = ListToArray(Row, ";;")> <cfset loopDateDiff = DateDiff("d", StartDatum, CreateDate(TerminRow[1],TerminRow[2],TerminRow[3]))> <cfif loopDateDiff GTE 0 AND loopDateDiff LTE TageImAktuellenMonat> <cfset MonatsTermine.append(ListToArray(Row, ";;"))> </cfif> </cfloop> <table class="kalender-table-border"> <tr><a href="/kalender_wochenansicht.cfm">Hier gehts zur Wochenansicht</a></tr> <caption align=top><h1><cfoutput> #AktuellerMonatString# #AktuellesJahr# </cfoutput></h1></caption> <head><th>MO</th><th>DI</th><th>MI</th><th>DO</th><th>FR</th><th>SA</th><th>SO</th></head><br> <body> <tr> <cfloop list="2,3,4,5,6,7,1" index="Wochentag"> <cfif StartWochentag EQ Wochentag> <cfbreak> <cfelse> <td bgcolor=#BDBDBD> </td> </cfif> </cfloop> <cfloop from="#StartDatum#" to="#ZielDatum#" index="loopDate" step="#TagesSchrittweite#"> <cfset TERMIN_GEFUNDEN = 0> <cfloop array="#MonatsTermine#" index="Row"> <cfif Year(loopDate) EQ Row[1] AND Month(loopDate) EQ Row[2] and Day(loopDate) EQ Row[3]> <cfset TERMIN_GEFUNDEN = 1> </cfif> </cfloop> <cfif Day(loopDate) EQ Day(now()) AND Month(loopDate) EQ Month(now())> <!--aktuellen Tag hervorheben--> <cfif TERMIN_GEFUNDEN EQ 1> <td class="kalender-table-cell" bgcolor=#ffff00 style="border-style: solid; border-width: 5px; text-align: center"><b><cfoutput>#Day(loopDate)#</cfoutput><br>X</b> <cfelse> <td class="kalender-table-cell" bgcolor=#BDBDBD style="border-style: solid; border-width: 1px; text-align: center"><b><cfoutput>#Day(loopDate)#</cfoutput> </cfif> <form method="post" name="NeuerTermin" action="kalender_termineingabe.cfm"> <cfoutput> <input type="hidden" name="Tag" value="#Day(loopDate)#"> <input type="hidden" name="Monat" value="#Month(loopDate)#"> <input type="hidden" name="Jahr" value="#Year(loopDate)#"> </cfoutput> <input type="submit" value="+"> </form> </td> <cfelse> <cfif TERMIN_GEFUNDEN EQ 1> <td class="kalender-table-cell" bgcolor=#ffff00><cfoutput>#Day(loopDate)#<br><b>X</b></cfoutput> <cfelse> <td class="kalender-table-cell"><cfoutput>#Day(loopDate)#</cfoutput> </cfif> <form method="post" name="NeuerTermin" action="kalender_termineingabe.cfm"> <cfoutput> <input type="hidden" name="Tag" value="#Day(loopDate)#"> <input type="hidden" name="Monat" value="#Month(loopDate)#"> <input type="hidden" name="Jahr" value="#Year(loopDate)#"> </cfoutput> <input type="submit" value="+"> </form> </td> </cfif> <cfif (DayOfWeek(loopDate)) EQ 1> </tr> </cfif> </cfloop> <cfloop index="i" from="#ZielWochentag#" to="7" > <td class="kalender-table-cell" bgcolor=#BDBDBD> </td> </cfloop> <br> </body> </table> <table> <td class="kalender-table-border"> <cfif ArrayIsEmpty(MonatsTermine) EQ 1> Keine Termine in dieser Woche! <cfelse> <br><b>Kommende Termine:</b> <br> <cfloop array="#MonatsTermine#" index="Termin"> <cfoutput><b>#Termin[1]#-#Termin[2]#-#Termin[3]#:</b> #Termin[4]# - #Termin[5]#<br></cfoutput> </cfloop> </cfif> </td> </table> <!-- 1. Form: Monat zurück --> <table> <body> <tr> <td> <form method="post" name="form1" action> <cfoutput> <input type="hidden" name="AktuellerMonat" value=#zuruckMonat#> <input type="hidden" name="AktuellesJahr" value="#zuruckJahr#"> </cfoutput> <input type="submit" value="Zuruck"> </form> </td> <!-- 2. Form: Monat vor --> <td> <form method="post" name="form2" action> <cfoutput> <input type="hidden" name="AktuellerMonat" value=#vorMonat#> <input type="hidden" name="AktuellesJahr" value="#vorJahr#"> </cfoutput> <input type="submit" value="Vor"> </form> </td> </tr> </body> </table> <br> </body> </html> ```