From e80f077ae38981a648c0791195072c7bc1eeaadd Mon Sep 17 00:00:00 2001 From: tobiichi3227 Date: Wed, 25 Dec 2024 11:35:26 +0800 Subject: [PATCH 1/2] Fix(Fortune): Calculate the time difference for events that have already occurred based on the next year For example, if today is January 2nd, then the New Year's Day on January 1st should be calculated using January 1st of the next year. --- fortune_generator/js/fortune.js | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/fortune_generator/js/fortune.js b/fortune_generator/js/fortune.js index 788ea69..25df2ff 100644 --- a/fortune_generator/js/fortune.js +++ b/fortune_generator/js/fortune.js @@ -133,12 +133,14 @@ function daysDiff(eventIndex) { } const triggerDate = event.triggerDate; + let isCustomEvent = false; eventYear = year; if ('year' in triggerDate) { eventYear = validateNumber(triggerDate.year, 1, maxDate.getFullYear(), 'triggerDate.year', event); if (eventYear === null) { return -1; } + isCustomEvent = true; } if (!('month' in triggerDate)) { @@ -179,12 +181,17 @@ function daysDiff(eventIndex) { eventDate = firstTargetDay + (triggerDate.week - 1) * 7; } + if (!isCustomEvent && (month > eventMonth || (month == eventMonth && date > eventDate))) { + eventYear += 1; + } + const endDate = new Date( eventYear, eventMonth - 1, eventDate, ); + // calculate the difference in milliseconds and convert it to days const timeDiff = Math.ceil((endDate - startDate) / (1000 * 60 * 60 * 24)); return timeDiff; -- 2.49.1 From 54168328c259ff4ffa8a86250ecba545d2391046 Mon Sep 17 00:00:00 2001 From: tobiichi3227 Date: Wed, 25 Dec 2024 11:39:06 +0800 Subject: [PATCH 2/2] Fix(Fortune): Categorize events by trigger date type --- fortune_generator/json/custom_special.json | 66 +++++++++++++++++++- fortune_generator/json/cyclical_special.json | 20 ------ fortune_generator/json/static_special.json | 45 +------------ 3 files changed, 66 insertions(+), 65 deletions(-) diff --git a/fortune_generator/json/custom_special.json b/fortune_generator/json/custom_special.json index ff81a74..2d07d60 100644 --- a/fortune_generator/json/custom_special.json +++ b/fortune_generator/json/custom_special.json @@ -1,3 +1,67 @@ { - "special_events": [] + "special_events": [ + { + "event": "夏至", + "triggerDate": { + "year": "2025", + "month": "6", + "date": "21" + }, + "status_index": "0", + "goodFortunes": { + "l_1_event": "觀賞日出和日落", + "l_1_desc": "享受一年最長的白天", + "l_2_event": "", + "l_2_desc": "" + }, + "badFortunes": { + "r_1_event": "", + "r_1_desc": "", + "r_2_event": "", + "r_2_desc": "" + } + }, + { + "event": "中秋節", + "triggerDate": { + "year": "2025", + "month": "10", + "date": "6" + }, + "status_index": "0", + "goodFortunes": { + "l_1_event": "賞月", + "l_1_desc": "與家人一同賞月,增進感情", + "l_2_event": "吃月餅", + "l_2_desc": "與家人朋友分享月餅的美味" + }, + "badFortunes": { + "r_1_event": "", + "r_1_desc": "", + "r_2_event": "", + "r_2_desc": "" + } + }, + { + "event": "冬至", + "triggerDate": { + "year": "2025", + "month": "12", + "date": "21" + }, + "status_index": "0", + "goodFortunes": { + "l_1_event": "吃湯圓", + "l_1_desc": "團團圓圓", + "l_2_event": "保暖", + "l_2_desc": "冬至到了" + }, + "badFortunes": { + "r_1_event": "", + "r_1_desc": "", + "r_2_event": "", + "r_2_desc": "" + } + } + ] } diff --git a/fortune_generator/json/cyclical_special.json b/fortune_generator/json/cyclical_special.json index ee429f0..953fa43 100644 --- a/fortune_generator/json/cyclical_special.json +++ b/fortune_generator/json/cyclical_special.json @@ -662,26 +662,6 @@ "r_2_desc": "" } }, - { - "event": "冬至", - "triggerDate": { - "month": "12", - "date": "22" - }, - "status_index": "0", - "goodFortunes": { - "l_1_event": "吃湯圓", - "l_1_desc": "團團圓圓", - "l_2_event": "保暖", - "l_2_desc": "冬至到了" - }, - "badFortunes": { - "r_1_event": "", - "r_1_desc": "", - "r_2_event": "", - "r_2_desc": "" - } - }, { "event": "平安夜", "triggerDate": { diff --git a/fortune_generator/json/static_special.json b/fortune_generator/json/static_special.json index d079489..ff81a74 100644 --- a/fortune_generator/json/static_special.json +++ b/fortune_generator/json/static_special.json @@ -1,46 +1,3 @@ { - "special_events": [ - { - "event": "夏至", - "triggerDate": { - "year": "2025", - "month": "6", - "date": "21" - }, - "status_index": "0", - "goodFortunes": { - "l_1_event": "觀賞日出和日落", - "l_1_desc": "享受一年最長的白天", - "l_2_event": "", - "l_2_desc": "" - }, - "badFortunes": { - "r_1_event": "", - "r_1_desc": "", - "r_2_event": "", - "r_2_desc": "" - } - }, - { - "event": "中秋節", - "triggerDate": { - "year": "2025", - "month": "10", - "date": "6" - }, - "status_index": "0", - "goodFortunes": { - "l_1_event": "賞月", - "l_1_desc": "與家人一同賞月,增進感情", - "l_2_event": "吃月餅", - "l_2_desc": "與家人朋友分享月餅的美味" - }, - "badFortunes": { - "r_1_event": "", - "r_1_desc": "", - "r_2_event": "", - "r_2_desc": "" - } - } - ] + "special_events": [] } -- 2.49.1