Показать сообщение отдельно
  #13 (permalink)  
Старый 25.04.2021, 19:26
Аватар для Блондинка
Профессор
Отправить личное сообщение для Блондинка Посмотреть профиль Найти все сообщения от Блондинка
 
Регистрация: 24.02.2019
Сообщений: 806

есть несколько span'ов их названия оканчиваются на "_gr", и содержат некие даты по григорианскому календарю,

Catholic_Easter_gr
Maslenitsa_Catholic_gr
palm_Sunday_Catholic_gr
Catholic_Radunitsa_gr
Catholic_Trinity_gr


надо из этих дат высчитать даты по юлианскому календарю и сохранить в span'ы с соответствующими id'ами,

Catholic_Easter_ul
Maslenitsa_Catholic_ul
palm_Sunday_Catholic_ul
Catholic_Radunitsa_ul
Catholic_Trinity_ul

их названия оканчиваются на "_ul",....

другими словами применить функции

function gregorianToJdn(d, m, y) {
    return tr((1461 * (y + 4800 + tr((m - 14) / 12))) / 4) +
           tr((367 * (m - 2 - 12 * tr((m - 14) / 12))) / 12) -
           tr((3 * tr((y + 4900 + tr((m - 14) / 12)) / 100)) / 4) + d - 32075;
}


и

function jdnToJulianOrGregorian(j, to) { // to: true (julian), false (gregorian)
    var f = (to) ? (j + 1401) : (j + 1363 + tr((tr((4 * j + 274277) / 146097) * 3) / 4));
    var e = 4 * f + 3, h = 5 * tr((e % 1461) / 4) + 2;
    var d = tr((h % 153) / 5) + 1, m = ((tr(h / 153) + 2) % 12) + 1, y = tr(e / 1461) - 4716 + tr((14 - m) / 12);
    return { d: d, m: m, y: y }; 
}



есть несколько span'ов их названия оканчиваются на "_ul", и содержат некие даты по юлианскому календарю,

Orthodox_Easter_ul
Maslenitsa_Orthodox_ul
palm_Sunday_Orthodox_ul
Orthodox_Radunitsa_ul
Orthodox_Trinity_ul

надо из этих дат высчитать даты по григорианскому календарю и сохранить в span'ы с соответствующими id'ами
их названия оканчиваются на "_ul",....

Orthodox_Easter_gr
Maslenitsa_Orthodox_gr
palm_Sunday_Orthodox_gr
Orthodox_Radunitsa_gr
Orthodox_Trinity_gr


другими словами применить функции

function julianToJdn(d, m, y) {
    return 367 * y - tr((7 * (y + 5001 + tr((m - 9) / 7))) / 4) + tr((275 * m) / 9) + d + 1729777;
}


и

function jdnToJulianOrGregorian(j, to) { // to: true (julian), false (gregorian)
    var f = (to) ? (j + 1401) : (j + 1363 + tr((tr((4 * j + 274277) / 146097) * 3) / 4));
    var e = 4 * f + 3, h = 5 * tr((e % 1461) / 4) + 2;
    var d = tr((h % 153) / 5) + 1, m = ((tr(h / 153) + 2) % 12) + 1, y = tr(e / 1461) - 4716 + tr((14 - m) / 12);
    return { d: d, m: m, y: y }; 
}



потом надо у всех дат по юлианскому календарю span'ы с id'ами с окончанием на _ul, и которые были и которые получили, высчитать дни недели,

другими словами применить функции

function julianToJdn(d, m, y) {
    return 367 * y - tr((7 * (y + 5001 + tr((m - 9) / 7))) / 4) + tr((275 * m) / 9) + d + 1729777;
}


и

function jdnToWeekDay(j) { return (j % 7) + 1; }
function tr(n) { return n - n % 1; } // truncate (for integer division)


https://en.wikipedia.org/wiki/Julian_day

высчитывать дни недели у григорианских дат не нужно (объект date сам может),

и вставить недостающие даты на страницу,

одним словом доработать скрипт до логического завершения...

Последний раз редактировалось Блондинка, 25.04.2021 в 20:23.
Ответить с цитированием