Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: для новичков > Номер учебной недели и её четность


Автор: JackyFox 28.10.2008, 21:36
Доброго времени суток!

На бесплатном хостинге у меня есть сайт для одногруппников из универа.

Почти постоянно путаемся, какая же в данный момент идет неделя с момента начала семестра, а от этого параметра (точнее от четности) серьезно зависит, какие пары нам сегодня предстоят. Так как площадок у нас несколько, то перепутав четность, можно уехать не по тому адресу, и на правильные занятия не успеешь. Опять же часто происходят ошибки с тем, какую домашнюю работу на завтра выполнять.

К сожалению, поддержки php у моего хостинга нет, поэтому решил обратиться к скриптам клиентской стороны. Давно еще пытался знакомиться с javascript, но из наших отношений ничего не вышло. Не срослось как-то smile 

Поэтому прошу помочь решить следующую задачу:

На произвольной странице  хочу разместить надпись вида: 
"Идёт 9-я (нечетная) неделя".

Номер недели считается, естесственно, так: 

Код

<номер_текущей_недели> - <номер_недели_начала_семестра> + 1


Семестр заканчивается до НГ, поэтому рассчитывать поправку на изменение года не нужно. Номер начальной недели менять скорее всего придется в ручную, так как первой учебной неделей у нас может считаться и не та, на которой было 1-е сентября, а весенний семестр вообще начинается каждый раз в свое время.

Если все это решается элементарно, помогите, кому не трудно. Если же я намудрил, то отправьте в направлении... правильном направлении. Сяду за изучение учебника по JS.

За любой исход заранее благодарю ;)

Автор: Michael.de 28.10.2008, 23:37
Чего не сделаешь ради благого дела smile
Код

<html>
<head>
<script type='text/javascript'>
function week(){
 var start, now, difference, even_or_odd, info, board;
 start = new Date("September 1, 2008 00:00:01");
 now = new Date();
 difference = (now-start)/604800000; // comment: 604800000=1000millisec*60sec*60min*24hour*7day
 difference%2 ? odd_or_even = 'odd' : odd_or_even = 'even';
 info='Now is a '+Math.ceil(difference)+' week ('+odd_or_even+')';
 board=document.getElementById('n1');
 board.innerHTML=info+'<br/>'+now;
}
</script>
</head>
<body onload='week();'>
<div id='n1' style='position:absolute; left:100px; top:100px; background-color:#DDF; border:1px solid #55A; padding:2px'></div>
</body>
</html>

JackyFox, это то что нужно?
P.S. CSS у <div> естественно можно менять по своему вкусу smile

Автор: JackyFox 29.10.2008, 07:14
Michael.de, огромное спасибо!
Вы побудили во мне желание заняться таки изучением javascript в серьез.

Все уже импортировал на http://opticoff.net/. За неимением времени (пора уже на работу выходить) только на главную, ибо у юкоза нет чего-то подобного общего шаблона header или footer.

Автор: Michael.de 29.10.2008, 23:35
JackyFox, всегда пожалуйста smile
P.S. Кстати, "Идёт 9-я, нечетная, неделя" пишется без запятой, помеч. красн. цветом smile

Автор: JackyFox 30.10.2008, 17:48
Michael.de, спасибо за замечание. Исправлюсь

Изначально я написал в виде «Идет 9-я (нечетная) неделя», но вид скобок мне не понравился, поэтому я их заменил запятыми, хотя по правилам нужно тире. Но тире тоже не очень смотрится. 

Вообще четность приводится для тех одногруппников, у которых возникают вопросы, вроде: а че это, 9-я... так четная или нечетная. smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)