Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #31 (permalink)  
Старый 28.03.2019, 09:27
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,706

Сообщение от Блондинка
надо что то простое, без вопросов-ответов посетителям о разрешении использования их геолокации, и в тоже время достаточно точное и надёжное.
Тут только волшебство вам поможет.
Ответить с цитированием
  #32 (permalink)  
Старый 28.03.2019, 10:12
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от Блондинка
это не важно, вряд-ли или нет
А я разве возражал? Я бы не стал тащить на клиента пиво и национальные кухни, предварительно не узнав будет ли вообще сегодня международный пикничок. А как вы хотите поступать, это уже ваше право.
Ответить с цитированием
  #33 (permalink)  
Старый 17.11.2019, 01:37
Аватар для Блондинка
Профессор
Отправить личное сообщение для Блондинка Посмотреть профиль Найти все сообщения от Блондинка
 
Регистрация: 24.02.2019
Сообщений: 806

Никто не знает?

Сообщение от Malleys Посмотреть сообщение
Да, возможно. Например, вычисление дня пасхи Пасхалия

Вот я попробовал...
<h4>Православная пасха</h4>
<input id="input" type="number" value="2019">
<output id="output"></output>

<script>

function psh(Y){
	var a = (19 * (Y % 19) + 15) % 30;
	var b = (2 * (Y % 4) + 4 * (Y % 7) + 6 * a + 6) % 7;

	if(a + b > 26)
		return (a + b - 26) + " мая " + Y;
	else
		return (a + b + 4) + " апреля " + Y;
}

(input.oninput = function() {
	output.textContent = psh(+input.value);
})();

</script>
Как и куда вставить, getDay, чтобы показало и день недели ?
Ответить с цитированием
  #34 (permalink)  
Старый 30.04.2021, 17:39
Аватар для Блондинка
Профессор
Отправить личное сообщение для Блондинка Посмотреть профиль Найти все сообщения от Блондинка
 
Регистрация: 24.02.2019
Сообщений: 806

Сообщение от laimas Посмотреть сообщение
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<style>
.holiday {
    text-align: center;
}
</style>
</head>
<body>
<script type="text/javascript">
var holidays = {
    '3': {
        '8': {'start': 8, 'duration': 12, 'compliments': '<img src="https://s0.tchkcdn.com/g-lScF7M4CSF9uPeXq54QRNw/4/22014/640x640/w/0/792c2e17f080c8b4461a3467a34bdf9e_398733855.jpg">'},
        '9': {'start': 12, 'duration': 2, 'compliments': 'Поздравление с Днем счастливых!'}    
    }
}, d = new Date(), m;

if((m = holidays[d.getMonth()+1]) && m[d.getDate()]) {
    //можно записывать в сессионное хранилище условие (метку окончания показа)
    //и проверяя ее в ней, если она есть, сразу отображаем поздравление и запускаем таймер окончания
    //в противном случае запускаем таймер сканирующий время на соответствие началу старта поздравления
    //и при этом событии пишем метку окончания в сессию
    //конечное сравнение для старта, это
    m = m[d.getDate()];
    if(d.getHours()>=m.start) {
        var b = document.createElement('div');
        b.className = 'holiday';
        b.innerHTML = m.compliments;
        document.querySelector('body').appendChild(b)
    }  
}
</script>
</body>
</html>
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<style>
.holiday {
    text-align: center;
}
</style>
</head>
<body>
<script type="text/javascript">
var holidays = {
    '3': {
        '8': {'start': 8, 'duration': 12, 'compliments': 'С 8 марта !'},
        '9': {'start': 12, 'duration': 2, 'compliments': 'Поздравление с Днем счастливых!'}    
    },
    '4': {
        '11': {'start': 8, 'duration': 12, 'compliments': 'С днём космонавтики !'},
        '30': {'start': 12, 'duration': 2, 'compliments': 'с 30 апреля! '   
    }
},
    '5': {
        '1': {'start': 8, 'duration': 12, 'compliments': 'С 1 мая !'},
        '9': {'start': 12, 'duration': 2, 'compliments': 'С 9 мая !'    
    }
}
},
 d = new Date(), m;

if((m = holidays[d.getMonth()+1]) && m[d.getDate()]) {
    //можно записывать в сессионное хранилище условие (метку окончания показа)
    //и проверяя ее в ней, если она есть, сразу отображаем поздравление и запускаем таймер окончания
    //в противном случае запускаем таймер сканирующий время на соответствие началу старта поздравления
    //и при этом событии пишем метку окончания в сессию
    //конечное сравнение для старта, это
    m = m[d.getDate()];
    if(d.getHours()>=m.start) {
        var b = document.createElement('div');
        b.className = 'holiday';
        b.innerHTML = m.compliments;
        document.querySelector('body').appendChild(b)
    }  
}
</script>
</body>
</html>
Ответить с цитированием
  #35 (permalink)  
Старый 30.04.2021, 17:56
Аватар для Блондинка
Профессор
Отправить личное сообщение для Блондинка Посмотреть профиль Найти все сообщения от Блондинка
 
Регистрация: 24.02.2019
Сообщений: 806

Сообщение от Malleys Посмотреть сообщение
Да, возможно. Например, вычисление дня пасхи Пасхалия

Вот я попробовал...
<h4>Православная пасха</h4>
<input id="input" type="number" value="2019">
<output id="output"></output>

<script>

function psh(Y){
	var a = (19 * (Y % 19) + 15) % 30;
	var b = (2 * (Y % 4) + 4 * (Y % 7) + 6 * a + 6) % 7;

	if(a + b > 26)
		return (a + b - 26) + " мая " + Y;
	else
		return (a + b + 4) + " апреля " + Y;
}

(input.oninput = function() {
	output.textContent = psh(+input.value);
})();

</script>
как из этого скрипта добавить функцию

function psh(Y){
	var a = (19 * (Y % 19) + 15) % 30;
	var b = (2 * (Y % 4) + 4 * (Y % 7) + 6 * a + 6) % 7;

	if(a + b > 26)
		return (a + b - 26) + " мая " + Y;
	else
		return (a + b + 4) + " апреля " + Y;
}


и вывести поздравление с пасхой, и радуницей(+9 дней)

и эту функцию

function catholicDate(year) {
   // [url]https://ru.wikipedia.org/wiki/Алгоритм_Гаусса_вычисления_даты_Пасхи[/url]
   var a = year % 19,
   b = year % 4,
   c = year % 7,
   k = Math.floor(year / 100),
   p = Math.floor((13 + 8 * k) / 25),
   q = Math.floor(k / 4),
   m = (15 - p + k - q) % 30,
   n = (4 + k - q) % 7,
   d = (19 * a + m) % 30,
   e = (2 * b + 4 * c + 6 * d + n) % 7;
   if (d === 29 && e === 6) return new Date(year, 3, 19);
   if (d === 28 && e === 6 && ((11 * m + 11) % 30 < 19)) return new Date(year, 3, 18);
   if (d + e > 9) return new Date(year, 3, d + e - 9);
   else return new Date(year, 2, 22 + d + e);
   }


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

есть скрипт выводящий/скрывающий блок с поздравлениями...

<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<style>
div.holiday { background-color: #ececec; text-align: center; border: 1px solid #999; padding: 20px; color: #f00; font: bold 24px serif; }
</style>
</head>
<body>
<div id="holigay"></div>
<script type="text/javascript">
var holidays = {
    '3': {
        '8': {'start': 8, 'duration': 12, 'compliments': 'С 8 марта !'},
        '9': {'start': 12, 'duration': 2, 'compliments': 'Поздравление с Днем счастливых!'}    
    },
    '4': {
        '11': {'start': 8, 'duration': 12, 'compliments': 'С днём космонавтики !'},
        '30': {'start': 12, 'duration': 2, 'compliments': 'с 30 апреля! '   
    }
},
    '5': {
        '1': {'start': 8, 'duration': 12, 'compliments': 'С 1 мая !'},
        '9': {'start': 12, 'duration': 2, 'compliments': 'С 9 мая !'    
    }
}
},
 d = new Date(), m;

if((m = holidays[d.getMonth()+1]) && m[d.getDate()]) {
    m = m[d.getDate()];
    if(d.getHours()>=m.start) {
        var b = document.createElement('div');
        b.className = 'holiday';
        b.innerHTML = m.compliments;
        document.querySelector('body').appendChild(b)
    }  
}
</script>
</body>
</html>


в нем фиксированные даты, вопрос как вывести поздравления с праздниками, даты которых меняются каждый год?
есть две функции для расчёта пасхи православной и католической

function orthodoxDate(year) {
            var a = year % 19;
            var b = year % 4;
            var c = year % 7;
            var d = (19 * a + 15) % 30;
            var e = (2 * b + 4 * c + 6 * d + 6) % 7;
            var f = d + e;
            return f <= 26
                ? new Date(year, 3, 4 + f)
                : new Date(year, 4, f - 26);
        }


function catholicDate(year) {
            var a = year % 19;
            var b = year % 4;
            var c = year % 7;
            var k = Math.floor(year / 100);
            var p = Math.floor((13 + 8 * k) / 25);
            var q = Math.floor(k / 4);
            var m = (15 - p + k - q) % 30;
            var n = (4 + k - q) % 7;
            var d = (19 * a + m) % 30;
            var e = (2 * b + 4 * c + 6 * d + n) % 7;
            if (d === 29 && e === 6)
                return new Date(year, 3, 19);
            if (d === 28 && e === 6 && ((11 * m + 11) % 30 < 19))
                return new Date(year, 3, 18);
            if (d + e > 9)
                return new Date(year, 3, d + e - 9);
            else
                return new Date(year, 2, 22 + d + e);
        }


как в скрипт добавить эти функции, чтобы блок появлялся в эти даты пасхи православной католической, православной радуницей(+9 дней) и православной троицей(+49 дней) ?
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как вывести баннер при помощи JavaScript? FRILITE Общие вопросы Javascript 4 23.03.2016 05:18
Как вы относитесь к наркоманам? Maxmaxmaximus7 Оффтопик 7 05.02.2014 13:29
Вывести на печать DIV как его видно в браузере (с учетом фона с стилей) unomomento Элементы интерфейса 4 28.12.2013 00:43
Как приплюсовать 3 inputa и вывести, сообщение. ainur777 Элементы интерфейса 2 10.11.2013 15:33
Как вывести переменную из javascript в html код? red-nicolas Элементы интерфейса 3 25.02.2012 13:27