20.01.2011, 15:19
|
Аспирант
|
|
Регистрация: 20.01.2011
Сообщений: 40
|
|
Как можно сократить (и можно ли) этот скрипт (см. внутри)?
<script language = "JavaScript">
Date.prototype.getDOY = function()
{
var onejan = new Date(this.getFullYear(),0,1);
return Math.ceil((this - onejan) / 86400000);
}
Date.prototype.isLeapYear = function()
{
var year = this.getFullYear();
return ((year & 3) == 0 && (year % 100 || (year % 400 == 0 && year)));
}
var today = new Date();
var yearday = today.getDOY();
var path = "yenonotie_files/enderi/";
var x = 0;
var enderi5 = new Array(
path + "1.png",
path + "2.png",
path + "3.png",
path + "4.png",
path + "5a.png");
var enderi6 = new Array(
path + "1.png",
path + "2.png",
path + "3.png",
path + "4.png",
path + "5b.png",
path + "6.png");
var months = new Array();
var days = new Array();
var y = 30;
while (x <= 11)
{
months [x] = "yenonotie_files/months/" + x + ".png";
++x;
}
x = 0
while (x <= 29)
{
days [x] = "yenonotie_files/days/" + x + ".png";
++x;
}
x = 1;
if (yearday >= 361)
{
if (today.isLeapYear())
{
document.getElementById("pic1").src = "yenonotie_files/main/enderi6.png";
document.getElementById("pic2").src = enderi6 [yearday - 361];
}
else
{
document.getElementById("pic1").src = "yenonotie_files/main/enderi5.png";
document.getElementById("pic2").src = enderi5 [yearday - 361];
}
}
else
{
while (y <= yearday - 1)
{
++x;
y += 30;
}
yearday = yearday - (30 * (x - 1));
document.getElementById("pic1").src = "yenonotie_files/main/calendar.png";
document.getElementById("pic2").src = months [x];
document.getElementById("pic3").src = days [yearday];
}
</script>
|
|
20.01.2011, 15:27
|
Аспирант
|
|
Регистрация: 20.01.2011
Сообщений: 40
|
|
Примечание 1: Все работает, надо только сократить...
Примечание 2: Например, нельзя ли функции, которые используются только по 1 разу, не назначать заранее, а прямо в программе по действиям выполнять? Ну, то есть то, что после "function () { " вставить вместо вызова функции или как-то так...
Последний раз редактировалось Hyuga_Nia, 20.01.2011 в 15:30.
|
|
20.01.2011, 15:55
|
|
CacheVar
|
|
Регистрация: 19.08.2010
Сообщений: 14,228
|
|
Сообщение от Hyuga_Nia
|
надо только сократить...
|
А сама задача-то в чём? Может лучше вообще по-другому все сделать?
|
|
20.01.2011, 16:00
|
|
.
|
|
Регистрация: 30.03.2010
Сообщений: 1,813
|
|
ksa,
Я сначала такой же вопрос написал, потом подумал и удалил(посмотрев на выше приведённый скрипт))))
__________________
.
|
|
20.01.2011, 16:14
|
|
CacheVar
|
|
Регистрация: 19.08.2010
Сообщений: 14,228
|
|
Сообщение от Skipp
|
написал, потом подумал и удалил
|
Рыцарь, ты мудр! (с) к/ф Путешественники во времени (с Ж.Рено)
|
|
20.01.2011, 16:19
|
|
.
|
|
Регистрация: 30.03.2010
Сообщений: 1,813
|
|
O_O( )
__________________
.
|
|
20.01.2011, 16:24
|
Аспирант
|
|
Регистрация: 20.01.2011
Сообщений: 40
|
|
Цитата:
|
Может лучше вообще по-другому все сделать?
|
Как?
Цитата:
|
А сама задача-то в чём?
|
Скрипт выводит вот такое:
А в последние 5 дней года такое:
(Или 6, если год високосный:
)
Последний раз редактировалось Hyuga_Nia, 20.01.2011 в 16:34.
|
|
20.01.2011, 16:33
|
|
CacheVar
|
|
Регистрация: 19.08.2010
Сообщений: 14,228
|
|
Hyuga_Nia, что-то картинок я твоих не вижу...
|
|
20.01.2011, 16:36
|
|
.
|
|
Регистрация: 30.03.2010
Сообщений: 1,813
|
|
ksa,
лучше и не видеть!!!!
Hyuga_Nia,
Если бы понятно было бы, что да как)
__________________
.
|
|
20.01.2011, 16:36
|
Аспирант
|
|
Регистрация: 20.01.2011
Сообщений: 40
|
|
Цитата:
|
Hyuga_Nia, что-то картинок я твоих не вижу...
|
Народ.ру глючил, теперь видишь?
|
|
|
|