@@ -6,12 +6,34 @@ var timeOffset = localStorage.getItem('timeOffset')
6
6
if ( timeOffset === null ) localStorage . setItem ( 'timeOffset' , '0' )
7
7
timeOffset = Number ( localStorage . getItem ( 'timeOffset' ) )
8
8
9
- function getCurrentEditedDate ( ) {
9
+ var dayOffset = localStorage . getItem ( 'dayOffset' )
10
+ if ( dayOffset === null ) localStorage . setItem ( 'dayOffset' , '-1' )
11
+ dayOffset = Number ( localStorage . getItem ( 'dayOffset' ) )
12
+
13
+ var setDayOffsetLastDay = localStorage . getItem ( 'setDayOffsetLastDay' )
14
+ if ( setDayOffsetLastDay === null ) localStorage . setItem ( 'setDayOffsetLastDay' , '-1' )
15
+ setDayOffsetLastDay = Number ( localStorage . getItem ( 'setDayOffsetLastDay' ) )
16
+
17
+
18
+ function getCurrentEditedDate ( ) {
10
19
let d = new Date ( ) ;
11
20
d . setSeconds ( d . getSeconds ( ) + timeOffset )
12
21
return d ;
13
22
}
14
23
24
+ function getCurrentEditedDay ( date ) {
25
+ if ( dayOffset === - 1 )
26
+ return date . getDay ( ) ;
27
+ if ( setDayOffsetLastDay == new Date ( ) . getDay ( ) ) {
28
+ return dayOffset ;
29
+ }
30
+ localStorage . setItem ( 'dayOffset' , '-1' )
31
+ localStorage . setItem ( 'setDayOffsetLastDay' , '-1' )
32
+ dayOffset = - 1
33
+ setDayOffsetLastDay = - 1
34
+ return date . getDay ( ) ;
35
+ }
36
+
15
37
// Generated by ChatGPT4
16
38
function isBreakTime ( startTime , endTime , currentTime ) {
17
39
const [ startH , startM ] = startTime . split ( ':' ) . map ( Number ) ;
@@ -40,12 +62,10 @@ function getNextClassIndex(timetable, currentIndex) {
40
62
// Generated by ChatGPT4
41
63
function getCurrentDaySchedule ( ) {
42
64
const date = getCurrentEditedDate ( ) ;
43
- const dayOfWeek = date . getDay ( ) ; // 0 = Sunday, 1 = Monday, ...
65
+ const dayOfWeek = getCurrentEditedDay ( date ) ; // 0 = Sunday, 1 = Monday, ...
44
66
const weekNumber = weekIndex ; // 当前周数
45
-
46
67
const dailyClass = scheduleConfig . daily_class [ dayOfWeek ] ;
47
68
if ( ! dailyClass ) return [ ] ;
48
-
49
69
return dailyClass . classList . map ( subject => {
50
70
if ( Array . isArray ( subject ) ) {
51
71
return subject [ weekNumber ] ; // 处理每周不同的课程
@@ -82,14 +102,12 @@ function getScheduleData() {
82
102
const currentSchedule = getCurrentDaySchedule ( ) ;
83
103
const currentTime = getCurrentTime ( ) ;
84
104
// let currentTime = '07:10:01';
85
- const dayOfWeek = getCurrentEditedDate ( ) . getDay ( ) ;
105
+ const dayOfWeek = getCurrentEditedDay ( getCurrentEditedDate ( ) ) ;
86
106
const timetable = scheduleConfig . daily_class [ dayOfWeek ] . timetable
87
107
const dayTimetable = scheduleConfig . timetable [ timetable ] ;
88
108
const divider = scheduleConfig . divider [ timetable ] ;
89
-
90
109
let scheduleArray = [ ] ;
91
110
let currentHighlight = { index : null , type : null , fullName : null , countdown : null , countdownText : null } ;
92
-
93
111
Object . keys ( dayTimetable ) . forEach ( ( timeRange , index ) => {
94
112
const [ startTime , endTime ] = timeRange . split ( '-' ) ;
95
113
const classIndex = dayTimetable [ timeRange ] ;
@@ -137,7 +155,6 @@ function getScheduleData() {
137
155
currentHighlight . fullName = currentSchedule [ classIndex ] ; // 使用时间表中的描述
138
156
}
139
157
} ) ;
140
-
141
158
return { scheduleArray, currentHighlight, timetable, divider } ;
142
159
}
143
160
0 commit comments