Comments
Alle, von mir zu bearbeitenden, komplizierten und relevanten Codeteile wurden ausführlich beschrieben
This commit is contained in:
@@ -14,9 +14,9 @@ export default function BasicDateCalendar(p) {
|
||||
|
||||
const ref = useRef(null)
|
||||
|
||||
function getBackMonthColor(monthIndex)
|
||||
function getBackMonthColor(monthIndex) //Farbliche Kennzeichnung des Monats in dem man aktuell Plant
|
||||
{
|
||||
let date = new Date(parseInt(startParts[2]), parseInt(startParts[1]) + monthIndex - 1, 1)
|
||||
let date = new Date(parseInt(startParts[2]), parseInt(startParts[1]) + monthIndex - 1, 1) //Datums Objekt des Monats in dem man sich aktuell befindet
|
||||
if (date.getFullYear() === p.highlightYear && date.getMonth() === p.highlightMonth)
|
||||
{
|
||||
if(lastMonth !== p.highlightMonth)
|
||||
@@ -35,8 +35,8 @@ export default function BasicDateCalendar(p) {
|
||||
result = []
|
||||
calculatedDay = []
|
||||
|
||||
startDate = new Date(p.startyear, 0 ,p.startday)
|
||||
let endDate = new Date(p.endyear, 0 , p.endday)
|
||||
startDate = new Date(p.startyear, 0 ,p.startday) //Startdatum des Theoriesemesters
|
||||
let endDate = new Date(p.endyear, 0 , p.endday) //Enddatum des Theoriesemesters
|
||||
let startString = startDate.getDate() + "." + (startDate.getMonth() + 1) + "." + p.startyear
|
||||
let endString = endDate.getDate() + "." + (endDate.getMonth() + 1) + "." + p.endyear
|
||||
generateCalendar(startString, endString)
|
||||
@@ -45,10 +45,10 @@ export default function BasicDateCalendar(p) {
|
||||
return (
|
||||
<div className={"Allround"} ref={ref}>
|
||||
<div className={"Down"}>
|
||||
{result.map((monthResult, index) => (
|
||||
{result.map((monthResult, index) => ( //map durch alle Monate aus dem Array monthResult
|
||||
<div className={"A box-shadow"} onClick={() => p.onMonthClick(
|
||||
(parseInt(startParts[1]) + index),
|
||||
startParts
|
||||
startParts //gibt zurück auf welchen Monat geklickt wurde, wodurch direkt in den jeweiligen Monat gewechselt werden kann
|
||||
)} >
|
||||
<p style={{
|
||||
textAlign : "center",
|
||||
@@ -63,7 +63,7 @@ export default function BasicDateCalendar(p) {
|
||||
pointerEvents: "none"
|
||||
}}>
|
||||
{weekdays.map((weekday) => (
|
||||
<p key={weekday} style={{
|
||||
<p key={weekday} style={{ //generiere einmal alle Wochentage (Montag,...,Sonntag)
|
||||
pointerEvents: "none"
|
||||
}}>{weekday}</p>
|
||||
))}
|
||||
@@ -82,8 +82,7 @@ export default function BasicDateCalendar(p) {
|
||||
}
|
||||
|
||||
|
||||
|
||||
function getMonthName(monthIndex) {
|
||||
function getMonthName(monthIndex) { //holt die relevanten Monatsnamen aus dem 2D Array
|
||||
if (startParts[1] - 1 + monthIndex < 12) {
|
||||
return months[startParts[1] - 1 + monthIndex][0];
|
||||
} else {
|
||||
@@ -94,31 +93,31 @@ function getMonthName(monthIndex) {
|
||||
function generateCalendar(start, ende)
|
||||
{
|
||||
splitter(start, ende)
|
||||
if (startParts[2] < endParts[2])
|
||||
if (startParts[2] < endParts[2]) //Abfrage für den Fall, dass ein Theoriesemester Jahresübergreifend ist
|
||||
{
|
||||
for (let i = startParts[1] - 1; i <= 11; i++)
|
||||
for (let i = startParts[1] - 1; i <= 11; i++) //Durchlaufe alle Monate bis zum Jahresende
|
||||
{
|
||||
let monthResult = [];
|
||||
for (let j = 1; j <= days[i]; j++)
|
||||
for (let j = 1; j <= days[i]; j++) //durchlaufe alle Tage des Monats in dem wir uns befinden
|
||||
{
|
||||
if (
|
||||
new Date(startParts[2], i, j) >= new Date(startParts[2], startParts[1] - 1, startParts[0]) &&
|
||||
new Date(startParts[2], i, j) <= new Date(startParts[2], 11, 31)
|
||||
)
|
||||
) //überprüft ob der Tag noch in der angegebenen Zeitspanne des Theoriesemsters liegt
|
||||
{
|
||||
monthResult.push(j);
|
||||
calculateDay(startParts[2], i, j)
|
||||
}
|
||||
}
|
||||
result.push(monthResult);
|
||||
if (i == 11)
|
||||
if (i == 11) //erstes Jahr ist fertig abgebildet
|
||||
{
|
||||
for (let h = 0; h <= endParts[1] - 1; h++)
|
||||
for (let h = 0; h <= endParts[1] - 1; h++) //laufe vom Anfang des Jahres bis zum angegebenen Ende des Theoriesemesters
|
||||
{
|
||||
let monthResultNewYear = [];
|
||||
for (let g = 1; g <= days[h]; g++)
|
||||
for (let g = 1; g <= days[h]; g++) //durchlaufe alle Tage des Monats in dem wir uns befinden
|
||||
{
|
||||
if (new Date(endParts[2], h, g) <= new Date(endParts[2], endParts[1] - 1, endParts[0]))
|
||||
if (new Date(endParts[2], h, g) <= new Date(endParts[2], endParts[1] - 1, endParts[0])) //überprüft ob der Tag noch in der angegebenen Zeitspanne des Theoriesemsters liegt
|
||||
{
|
||||
monthResultNewYear.push(g);
|
||||
calculateDay(endParts[2], h, g)
|
||||
@@ -128,17 +127,17 @@ function generateCalendar(start, ende)
|
||||
}
|
||||
}
|
||||
}
|
||||
} else
|
||||
} else //Normalfall das ein Anfang und Ende eines Theoriesemester im gleichen Jahr liegt
|
||||
{
|
||||
for (let i = startParts[1] - 1; i <= endParts[1] - 1; i++)
|
||||
for (let i = startParts[1] - 1; i <= endParts[1] - 1; i++) //durchlaufe alle Monate in der angegebenen Zeitspanne
|
||||
{
|
||||
let monthResult = [];
|
||||
for (let j = 1; j <= days[i]; j++)
|
||||
for (let j = 1; j <= days[i]; j++) //durchlaufe alle Tage des Monats in dem wir uns befinden
|
||||
{
|
||||
if (
|
||||
new Date(startParts[2], i, j) >= new Date(startParts[2], startParts[1] - 1, startParts[0]) &&
|
||||
new Date(startParts[2], i, j) <= new Date(startParts[2], endParts[1] - 1, endParts[0])
|
||||
)
|
||||
) //überprüft ob der Tag noch in der angegebenen Zeitspanne des Theoriesemsters liegt
|
||||
{
|
||||
monthResult.push(j)
|
||||
calculateDay(startParts[2], i, j)
|
||||
@@ -149,7 +148,8 @@ function generateCalendar(start, ende)
|
||||
}
|
||||
}
|
||||
|
||||
function calculateDay(x, i, j){
|
||||
function calculateDay(x, i, j)//berechnet den Wochentag eines Datums (Montag,...,Sonntag)
|
||||
{
|
||||
if (j == startDate.getDate() && i == startDate.getMonth() || j == 1){
|
||||
let monthStart = new Date(x, i, j)
|
||||
if (monthStart.getDay() == 0)
|
||||
@@ -158,7 +158,7 @@ function calculateDay(x, i, j){
|
||||
}
|
||||
}
|
||||
|
||||
function freeSpaces(index)
|
||||
function freeSpaces(index)//generiert Leerzeichen damit Tage genau unter ihrem jeweiligen Wochentag stehen
|
||||
{
|
||||
let arrayTest = []
|
||||
for (let i = 0; i < calculatedDay[index]; i++) {
|
||||
|
||||
Reference in New Issue
Block a user