Главная » 2009 » Сентябрь » 12 » День недели в определенную дату (Javascript)
12.09.2009, 13:25

День недели в определенную дату



Скрипт показывает, какой день недели будет такого-то числа, такого-то месяца и такого-то года.

Необходимо вставить это в head:

Code
<SCRIPT LANGUAGE="JavaScript">
<!-- Original: Peter Bonnett (PeterBonnett@hotmail.com) -->
<!-- Web Site: http://uk.geocities.com/peterbonnett -->
<!-- Begin
var D = "0";
var M = "0";
var Y = "0";
var C = "0";
var B = "0";
var A = "0";
var Day = "0";
var Ending = "0";
var Dayow = new Array();
Dayow[-6] = "Понедельник";
Dayow[-5] = "Вторник";
Dayow[-4] = "Среда";
Dayow[-3] = "Четверг";
Dayow[-2] = "Пятница";
Dayow[-1] = "Суббота";
Dayow[0] = "Воскресенье";
Dayow[1] = "Понедельник";
Dayow[2] = "Вторник";
Dayow[3] = "Среда";
Dayow[4] = "Четверг";
Dayow[5] = "Пятница";
Dayow[6] = "Суббота";
var mnth = new Array();
mnth[0] = "Январь";
mnth[1] = "Февраль";
mnth[2] = "Март";
mnth[3] = "Апрель";
mnth[4] = "Май";
mnth[5] = "Июнь";
mnth[6] = "Июль";
mnth[7] = "Август";
mnth[8] = "Сентябрь";
mnth[9] = "Октябрь";
mnth[10] = "Ноябрь";
mnth[11] = "Декабрь";
function calcul() {
if (document.calculate.mnth.options.value == 0 || document.calculate.day.options.value == 0 || document.calculate.year.value.length == 0) {
alert('Please complete all options');
}
else if (document.calculate.mnth.options.value == 2 && document.calculate.day.options.value == 30 || document.calculate.mnth.options.value == 2 && document.calculate.day.options.value == 31) {
alert('That Month does not have '+ document.calculate.day.options.value +' days');
}
else if (document.calculate.mnth.options.value == 4 && document.calculate.day.options.value == 31) {
alert('That month does not have '+ document.calculate.day.options.value +' days');
}
else if (document.calculate.mnth.options.value == 6 && document.calculate.day.options.value == 31) {
alert('That month does not have '+ document.calculate.day.options.value +' days');
}
else if (document.calculate.mnth.options.value == 9 && document.calculate.day.options.value == 31) {
alert('That month does not have '+ document.calculate.day.options.value +' days');
}
else if (document.calculate.mnth.options.value == 11 && document.calculate.day.options.value == 31) {
alert('That month does not have '+ document.calculate.day.options.value +' days');
}
else {
calcul2();
  }
}
function calcul2() {
D = document.calculate.day.options.value;
M = document.calculate.mnth.options.value;
Y = document.calculate.year.value;
if (M < 3) {
M = ((M / 1) + 12);
Y = (Y - 1);
date2();
}
else {
date2();
  }
}
function date2() {
C = (parseInt(Y / 100));
B = (Y - (100 * C));
A = ((parseInt((2.6 * M) - 5.39)) + (parseInt(B / 4)) + (parseInt(C / 4)) + (D / 1) + B - (2 * C));
Day = (A - (7 * (parseInt(A / 7))));
Leap = ((Y / 4) - (parseInt(Y / 4)));
if (Leap != 0 && M >= 3 && A < 0) {
Day =- -Day;
daycalcu();
}
else if (Leap == 0 && M < 3 && A < 0) {
Day = (Day - 2);
daycalcu();
}
else {
daycalcu();
  }
}
function daycalcu() {
if (document.calculate.mnth.options.value == 2 && document.calculate.day.options.value == 29 && Leap == 0) {
alert('February does not have '+ document.calculate.day.options.value +' days in '+ document.calculate.year.value +'');
}
else {
appear();
  }
}
function appear() {
if (document.calculate.day.options.value == 1 || document.calculate.day.options.value == 21 || document.calculate.day.options.value == 31) {
Ending = "st";
appear2();
}
else if (document.calculate.day.options.value == 2 || document.calculate.day.options.value == 22) {
Ending = "nd";
appear2();
}
else if (document.calculate.day.options.value == 3 || document.calculate.day.options.value == 23) {
Ending = "rd";
appear2();
}
else {
Ending ="th";
appear2();
  }
}
function appear2() {
test = new Date();
gdate = test.getDate();
gyear = test.getFullYear();
gmonth = test.getMonth();
E = (gmonth + 1);
D = document.calculate.day.options.value;
M = document.calculate.mnth.options.value;
Y = document.calculate.year.value;
F = (M - 1);
if (gyear == Y && gdate == D && E == M) {
alert('День недели (в этот день): '+ Dayow[Day] +'');
}
else if (gyear < Y || gyear == Y && E < M || gyear == Y && E == M && gdate < D) {
alert('День недели (в этот день): '+ Dayow[Day] +'');
}
else if (gyear > Y || gyear == Y && E > M || gyear == Y && E == M && gdate > D) {
alert('День недели (в этот день): '+ Dayow[Day] +'');
}
else {
alert('День недели (в этот день): '+ Dayow[Day] +'');
  }
}
// End -->
</script>

Это в body:

Code
<div align="center"><form name="calculate">
<select name="day">
<option>Выберите дату
<option value="1">1
<option value="2">2
<option value="3">3
<option value="4">4
<option value="5">5
<option value="6">6
<option value="7">7
<option value="8">8
<option value="9">9
<option value="10">10
<option value="11">11
<option value="12">12
<option value="13">13
<option value="14">14
<option value="15">15
<option value="16">16
<option value="17">17
<option value="18">18
<option value="19">19
<option value="20">20
<option value="21">21
<option value="22">22
<option value="23">23
<option value="24">24
<option value="25">25
<option value="26">26
<option value="27">27
<option value="28">28
<option value="29">29
<option value="30">30
<option value="31">31
</select>
<select name="mnth">
<option>Выберите месяц
<option value="1">Январь
<option value="2">Февраль
<option value="3">Март
<option value="4">Апрель
<option value="5">Май
<option value="6">Июнь
<option value="7">Июль
<option value="8">Август
<option value="9">Сентябрь
<option value="10">Октябрь
<option value="11">Ноябрь
<option value="12">Декабрь
</select>
<input type=text name="year" size=4 maxlength=4> Год
<br>
<input type=button value="Расчитать" onclick="calcul()">
</form></div>

Адаптация и перевод: http://webscripts.ucoz.ru

Материал взят с сайта infoscript.ru
Внимание! Копирование данного материала запрещено без указания ссылки на сайт Infoscript.ru
Источник/Автор: Peter Bonnett
Категория: JavaScript's | Просмотров: 2050 | Добавил: antisept | Рейтинг: 4.0/1 |
Теги: День недели в определенную дату
Пока комментариев нет. Ты можешь быть первым!
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]