| Новости | FAQ | Авторы | Документация | В действии | Библиотека |
| Инструменты | Полезные ссылки | Хостинги | Скачать | Примеры | Форум |
Сергей 02.11.2005 20:02
@work_time[s_day;f_day;now]
# Метод возвращает истину, если сейчас рабочее время и не выходной день
# s_day - начало рабочего дня
# f_day - конец рабочего дня
# now - время, я обычно ставлю сейчас (объект класса date)
# Определяем переменные
# Смотрим всё ли ок с полученной датой $now
^try{$t[$now.day]
}{
^throw[work_time;$exception.source;Возможно вы не передали переменную ^$now]
$exception.handled(1)
}
# Сотрим все ли ок с переданным нам временем работы
^try{
$s_day[^date::create[${s_day}]]
$f_day[^date::create[${f_day}]]
}{
^throw[work_time;$exception.source;Возможно вы неверно ввели дату (надо - hh:mm, а у вас ${s_day} и ${f_day})]
$exception.handled(1)
}
# Рабочее ли время
$work_time[^if($now > $s_day && $now < $f_day){1}]
# Рабочий ли день
^if($work_time){
$calendar_month[^date:calendar[rus]($now.year;$now.month)]
$s[^calendar_month.locate($calendar_month.5 == $now.day)]
$v[^calendar_month.locate($calendar_month.6 == $now.day)]
^if($s || $v){$result(0);$result(1)}
}{$result(0)}
#@work_time[]
Вызов:
$now[^date::now[]]
$test[^work_time[7:00;18:00;${now}]]
^if($test){Работаем}{Не работаем}