---
# System prepended metadata

title: DYNAMISCHER KALENDER MIT TERMINEN

---

# 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>
```