|
| 1 | +const enums = { |
| 2 | + days: { |
| 3 | + values: [ |
| 4 | + 'SUNDAY', |
| 5 | + 'MONDAY', |
| 6 | + 'TUESDAY', |
| 7 | + 'WEDNESDAY', |
| 8 | + 'THURSDAY', |
| 9 | + 'FRIDAY', |
| 10 | + 'SATURDAY', |
| 11 | + ], |
| 12 | + map: { |
| 13 | + SUNDAY: '周日', |
| 14 | + MONDAY: '周一', |
| 15 | + TUESDAY: '周二', |
| 16 | + WEDNESDAY: '周三', |
| 17 | + THURSDAY: '周四', |
| 18 | + FRIDAY: '周五', |
| 19 | + SATURDAY: '周六', |
| 20 | + }, |
| 21 | + }, |
| 22 | + periods: { |
| 23 | + values: [ |
| 24 | + 'MORNING', |
| 25 | + 'ONE', |
| 26 | + 'TWO', |
| 27 | + 'THREE', |
| 28 | + 'FOUR', |
| 29 | + 'NOON', |
| 30 | + 'FIVE', |
| 31 | + 'SIX', |
| 32 | + 'SEVEN', |
| 33 | + 'EIGHT', |
| 34 | + 'NINE', |
| 35 | + 'AFTERCLASS', |
| 36 | + ], |
| 37 | + map: { |
| 38 | + MORNING: '早读', |
| 39 | + ONE: '第 1 节课', |
| 40 | + TWO: '第 2 节课', |
| 41 | + THREE: '第 3 节课', |
| 42 | + FOUR: '第 4 节课', |
| 43 | + NOON: '午休', |
| 44 | + FIVE: '第 5 节课', |
| 45 | + SIX: '第 6 节课', |
| 46 | + SEVEN: '第 7 节课', |
| 47 | + EIGHT: '第 8 节课', |
| 48 | + NINE: '第 9 节课', |
| 49 | + AFTERCLASS: '放学后', |
| 50 | + }, |
| 51 | + }, |
| 52 | +} |
| 53 | + |
| 54 | +function time2period(hhmm: number, day: string) { |
| 55 | + const timePeriods = [ |
| 56 | + { name: 'ONE', start: 815, end: 855 }, |
| 57 | + { name: 'TWO', start: 855, end: 945 }, |
| 58 | + { name: 'THREE', start: 945, end: 1035 }, |
| 59 | + { name: 'FOUR', start: 1035, end: 1125 }, |
| 60 | + { name: 'NOON', start: 1125, end: 1230 }, |
| 61 | + { name: 'FIVE', start: 1230, end: 1310 }, |
| 62 | + { name: 'SIX', start: 1310, end: 1400 }, |
| 63 | + { name: 'SEVEN', start: 1400, end: 1450 }, |
| 64 | + { name: 'EIGHT', start: 1450, end: 1540 }, |
| 65 | + { name: 'NINE', start: 1540, end: 1630 }, |
| 66 | + ] |
| 67 | + if (hhmm < timePeriods[0].start) { |
| 68 | + return 'MORNING' |
| 69 | + } |
| 70 | + else if (day === 'FRIDAY' && hhmm >= timePeriods[8].end) { |
| 71 | + return 'AFTERCLASS' |
| 72 | + } |
| 73 | + else if (hhmm >= timePeriods[9].end) { |
| 74 | + return 'AFTERCLASS' |
| 75 | + } |
| 76 | + else { |
| 77 | + for (const period of timePeriods) { |
| 78 | + if (period.start <= hhmm && hhmm < period.end) { |
| 79 | + return period.name |
| 80 | + } |
| 81 | + } |
| 82 | + } |
| 83 | +} |
| 84 | + |
| 85 | +export { enums, time2period } |
0 commit comments