Когда будет пятница 13-е в этом году?

Все статьи/праздники/эта статья

Пятница 13 довольно необычная дата. Считается что в этот день выходит из под контроля нечистная сила и могут происходить всякого рода необычные события. А как часто бывает этот день? Наверняка вы переодически замечаете в календаре - вот она родимая. Но навряд ли считали сколько раз в году бывает пятница 13. Обязательно ли она должна произойти или может быть год когда ее нет? Сколько максимально раз в году может сучиться это событие?

Не будем углубляться в математику, а просто напишем пару небольших програм которые посчитают все за нас. Внизу статьи вас ждет бонус - подсчет количеств выпадения пятниц 13-го на любой год.

И так поехали. Посчитаем максимально и минимально возможное количество пятниц 13-го в году начиная с Рождества Христова и до 3000 года:

var D =  new Date(), counter, max, min;

for(var year=0; year<=3000; year++){

	//Ставим начало года

	D.setFullYear(year, 0, 1);
	
	counter = 0;

	for(var i=1, d; i<=365; i++){
	
		//прибавляем по одному дню пока не достигнем конца года
	
		d = new Date(D.getTime());

		d.setDate(i);

		if(d.getDay()==5 && d.getDate()==13){
		
			//Случилась пятница 13-е ура!
		
			counter++;
		}
	}
	
	if(!max || counter>max){
		
		max = counter;
	}
	
	if(!min || counter<min){
				
		min = counter;
	}
}

console.log(max, min); //Выводит max=3 и min=1

Что это значит? Значит минимум один раз в год вас ждет пятница 13-е - она случается каждый год и от ее никуда не избавишься. Максимально эта дата может случиться 3 раза, но не более! Согласитесь довольно редкое событие - почти как Новый год. Так что есть повод его отметить!

function countFridays(){

	var options = {weekday: 'long', year: 'numeric', month: 'long', day: 'numeric'},
	dateTimeFormat = new Intl.DateTimeFormat('ru-RU', options);

	var D =  new Date(), str = '', m;
	
	if(m = document.getElementById("counts-input").value.match(/([0-9]+)/)){		
		year = m[1];
	}
	else{
		document.getElementById("counts-input").value = year = D.getFullYear();
	}

	D.setFullYear(year, 0, 1);
		
	for(var i=1, d; i<=365; i++){

		d = new Date(D.getTime());

		d.setDate(i);

		if(d.getDay()==5 && d.getDate()==13){
		
			str += '<li>'+dateTimeFormat.format(d) + '</li>';
		}
	}

	document.getElementById("counts-result").innerHTML = str;
}

document.getElementById("counts-input").addEventListener("input", countFridays);

countFridays();

Бонус! Когда будет пятница 13-е в любом году?

Введите год
    Комментировать
    Вход
    Удалить все комментарии
    Ваш комментарий:Комментировать