From 4b817eb68fe559941b96379022d0a4aebd1531cd Mon Sep 17 00:00:00 2001 From: lifeadventurer Date: Mon, 20 Nov 2023 23:59:58 +0800 Subject: [PATCH] change the calculate days difference process to a function --- fortune_generator/fortune.js | 36 +++++++++++++++++------------------- 1 file changed, 17 insertions(+), 19 deletions(-) diff --git a/fortune_generator/fortune.js b/fortune_generator/fortune.js index 639d052..015e3bf 100644 --- a/fortune_generator/fortune.js +++ b/fortune_generator/fortune.js @@ -46,6 +46,16 @@ const day = d.getDay(); const month = d.getMonth() + 1; const year = d.getFullYear(); +function daysDiff(eventIndex){ + // define the date right now and the special event date + const startDate = new Date(`${year}-${month}-${date}`); + const endDate = new Date(`${special_events[eventIndex].year}-${special_events[eventIndex].month}-${special_events[eventIndex].date}`); + + // calculate the difference in milliseconds and convert it to days + const timeDiff = (endDate - startDate) / (1000 * 60 * 60 * 24); + return timeDiff; +} + let special = false; let special_events_index = 0; @@ -77,36 +87,24 @@ async function init_page(){ let eventIndex_1 = -1, eventIndex_2 = -1; // check if there is special event today for(let i = 0; i < special_events.length; i++){ - if((special_events[i].year + special_events[i].month * 40 + special_events[i].date) > (year + month * 40 + date)){ + if(daysDiff(i) > 0){ if(eventIndex_1 == -1) eventIndex_1 = i; else if(eventIndex_2 == - 1) eventIndex_2 = i; } - if(special_events[i].year == year && special_events[i].month == month && special_events[i].date == date){ + else if(daysDiff(i) == 0){ special = true; special_events_index = i; } } if(eventIndex_1 != -1){ - // define the date right now and the special event date - const startDate = new Date(`${year}-${month}-${date}`); - const endDate = new Date(`${special_events[eventIndex_1].year}-${special_events[eventIndex_1].month}-${special_events[eventIndex_1].date}`); - - // calculate the difference in milliseconds and convert it to days - const timeDiff = (endDate - startDate) / (1000 * 60 * 60 * 24); - - let upcoming_event_1 = `距離${special_events[eventIndex_1].event}還剩${timeDiff}天`; + let days = daysDiff(eventIndex_1); + let upcoming_event_1 = `距離${special_events[eventIndex_1].event}還剩${days}天`; $('#upcoming-event-1').html(upcoming_event_1); } if(eventIndex_2 != -1){ - // define the date right now and the special event date - const startDate = new Date(`${year}-${month}-${date}`); - const endDate = new Date(`${special_events[eventIndex_2].year}-${special_events[eventIndex_2].month}-${special_events[eventIndex_2].date}`); - - // calculate the difference in milliseconds and convert it to days - const timeDiff = (endDate - startDate) / (1000 * 60 * 60 * 24); - - let upcoming_event_2 = `距離${special_events[eventIndex_2].event}還剩${timeDiff}天`; + let days = daysDiff(eventIndex_2); + let upcoming_event_2 = `距離${special_events[eventIndex_2].event}還剩${days}天`; $('#upcoming-event-2').html(upcoming_event_2); } @@ -255,4 +253,4 @@ function getLuck() { Update(); } -init_page(); +init_page(); \ No newline at end of file