Wróć do następnej zlokalizowanej daty odliczania czasu

Mam ten kod, który wykonuje obliczenia, aby znaleźć zlokalizowany czas UTC. Na podstawie tego czasu UTC jest inna funkcja, która obliczy dla mnie datę i godzinę następnego zdarzenia. Jeśli czas przypada między niedzielą @ 12 a środą @ 8, da mi to datę wydarzenia w środę, w przeciwnym razie da mi kolejną datę wydarzenia w niedzielę. Następnie wykonuję tę obliczoną datę, dzielę ją i przekazuję jako parametr do minutnika.

Zastanawiam się, czy istnieje bardziej optymalny sposób, aby to zrobić, szczególnie z instrukcją warunkową i gdzie podzielę czas na parametry.

$(function () {
// Calculate the time locally
function calcLocalizedTime() {
    var d = new Date(); // Date for current location
    var utc = d.getTime() + (d.getTimezoneOffset() * 60000); // convert to msec add local time zone offset get UTC time in msec
    var nd = new Date(utc + (3600000 * -5));
    return nd; // return localized datetime
}

// Calculate the next Webcast DateTime
function calcNextWebCast(date) {
    var localizedTime = new Date(date||new Date()); // localized datetime
    var nextDate = new Date(date||new Date()); // Next webcast datetime object
    var today = localizedTime.getDay() + '' + localizedTime.getHours(); // format localized datetime for comparison

    if (today >= 012 && today <=320 ) { // is today between Sun @ 12 or Wednesday @ 8
        nextDate.setDate(nextDate.getDate() + (3 - 1 - nextDate.getDay() + 7) % 7 + 1);
        nextDate.setHours(20,0,0,0);
    } else {
        nextDate.setDate(nextDate.getDate() + (3 - 4 - nextDate.getDay() + 7) % 7 + 1);
        nextDate.setHours(12,0,0,0);
    }

    return nextDate;
}

var localizedTime = calcLocalizedTime();
var nextWebCast = calcNextWebCast(localizedTime);
var m = nextWebCast.getMonth() + 1;
var d = nextWebCast.getDate();
var y = nextWebCast.getFullYear();
var hh = nextWebCast.getHours();
var mm = nextWebCast.getMinutes();

$('#defaultCountdown').countdown({until: $.countdown.UTCDate(-5, y, m-1, d, hh, mm)});

});

questionAnswers(1)

yourAnswerToTheQuestion