From 89266bc3c9a7ca6a6b4632c6163fdbe5f756a397 Mon Sep 17 00:00:00 2001
From: Zan1456 <62830223+Zan1456@users.noreply.github.com>
Date: Fri, 13 Jun 2025 14:41:21 +0200
Subject: [PATCH] Fixed week select
---
settings/index.css | 3 +-
timetable/timetable.js | 217 +++++++++++++++++++++++------------------
2 files changed, 122 insertions(+), 98 deletions(-)
diff --git a/settings/index.css b/settings/index.css
index 7f7a997..6def859 100644
--- a/settings/index.css
+++ b/settings/index.css
@@ -162,8 +162,9 @@ h2 {
}
.language-name {
+ color: var(--text-primary);
+ font-size: 12px;
font-weight: 500;
- font-size: 14px;
}
diff --git a/timetable/timetable.js b/timetable/timetable.js
index 2f35227..7cd4e97 100644
--- a/timetable/timetable.js
+++ b/timetable/timetable.js
@@ -27,6 +27,14 @@
const start = new Date(startDate);
const dates = [];
const dayNames = [LanguageManager.t('common.monday'), LanguageManager.t('common.tuesday'), LanguageManager.t('common.wednesday'), LanguageManager.t('common.thursday'), LanguageManager.t('common.friday')];
+
+ const startDay = start.getDay();
+ let dayOffset = 0;
+
+ if (startDay !== 1) {
+ dayOffset = startDay === 0 ? 1 : 1 - startDay;
+ start.setDate(start.getDate() + dayOffset);
+ }
for (let i = 0; i < 5; i++) {
const date = new Date(start);
@@ -519,25 +527,41 @@
const currentDate = new Date(date);
const currentYear = currentDate.getFullYear();
const currentMonth = currentDate.getMonth();
- let schoolYearStart;
+
+ let schoolYear;
if (currentMonth >= 8) {
- schoolYearStart = new Date(currentYear, 8, 1);
+ schoolYear = currentYear;
} else {
- schoolYearStart = new Date(currentYear - 1, 8, 1);
+ schoolYear = currentYear - 1;
}
- const timeDiff = currentDate.getTime() - schoolYearStart.getTime();
+
+ const schoolYearStart = new Date(schoolYear, 8, 1); // szeptember 1
+ const startDayOfWeek = schoolYearStart.getDay();
+ const daysToFirstMonday = startDayOfWeek === 1 ? 0 : (8 - startDayOfWeek) % 7;
+
+ const firstMonday = new Date(schoolYearStart);
+ firstMonday.setDate(schoolYearStart.getDate() + daysToFirstMonday);
+
+ const timeDiff = currentDate.getTime() - firstMonday.getTime();
const daysDiff = Math.floor(timeDiff / (1000 * 60 * 60 * 24));
const weekNumber = Math.floor(daysDiff / 7) + 1;
+
return Math.max(1, Math.min(52, weekNumber));
}
function getDateOfWeek(year, week, dayOfWeek) {
- const jan4 = new Date(year, 0, 4);
- const jan4DayOfWeek = jan4.getDay() || 7;
- const daysToAdd = (week - 1) * 7 + (dayOfWeek - jan4DayOfWeek);
- const result = new Date(jan4);
- result.setDate(jan4.getDate() + daysToAdd);
- return result;
+ // Tanév alapú hét számítás: szeptember 1-től kezdődik
+ const schoolYearStart = new Date(year, 8, 1); // szeptember 1
+ const startDayOfWeek = schoolYearStart.getDay();
+ const daysToFirstMonday = startDayOfWeek === 1 ? 0 : (8 - startDayOfWeek) % 7;
+
+ const firstMonday = new Date(schoolYearStart);
+ firstMonday.setDate(schoolYearStart.getDate() + daysToFirstMonday);
+
+ const targetDate = new Date(firstMonday);
+ targetDate.setDate(firstMonday.getDate() + (week - 1) * 7 + (dayOfWeek - 1));
+
+ return targetDate;
}
function formatDateHU(date) {
@@ -758,7 +782,6 @@
chevron_left
-