Страница 2 из 2
Re: Дата, время, сравнение, получение, установка.
Добавлено: 11 фев 2015, 22:18
wasiliysoft
Вот такая штука на PHP вроде работает как нужно, буду переводить в JAVA)
[syntax=php]<?
$hour = 7; $minutes =0 ;
$begin_user_hour = 23; $begin_user_minutes = 0;
$end_user_hour = 8; $end_user_minutes = 0;
if ($hour >= $begin_user_hour){
if ($minutes >= $begin_user_minutes) die("тихие часы");
} else{
if ($hour < $end_user_hour) die("тихие часы");
if ($hour == $end_user_hour){
if ($minutes < $end_user_minutes) die("тихие часы");
}
}
echo "ура, уже день";
?>[/syntax]
Re: Дата, время, сравнение, получение, установка.
Добавлено: 11 фев 2015, 22:38
doter.ua
wasiliysoft писал(а):Вот такая штука на PHP вроде работает как нужно, буду переводить в JAVA)
[syntax=php]<?
$hour = 7; $minutes =0 ;
$begin_user_hour = 23; $begin_user_minutes = 0;
$end_user_hour = 8; $end_user_minutes = 0;
if ($hour >= $begin_user_hour){
if ($minutes >= $begin_user_minutes) die("тихие часы");
} else{
if ($hour < $end_user_hour) die("тихие часы");
if ($hour == $end_user_hour){
if ($minutes < $end_user_minutes) die("тихие часы");
}
}
echo "ура, уже день";
?>[/syntax]
Начало в 8 утра, конец в 18 (Ночной образ жизни, бывают разные профессии у людей, вполне реальная ситуация). Такой вариант уже ломает этот алгоритм.
Код: Выделить всё
if ($hour >= $begin_user_hour){
if ($minutes >= $begin_user_minutes) die("тихие часы");
}
21 вечера - это больше чем начало Тихих часов, но они закончатся в 18, значит уже обычное время, а "твой" алгоритм думает иначе.
Re: Дата, время, сравнение, получение, установка.
Добавлено: 12 фев 2015, 15:50
wasiliysoft
Спасибо за замечание! буду думать)
Re: Дата, время, сравнение, получение, установка.
Добавлено: 12 фев 2015, 16:05
doter.ua
wasiliysoft писал(а):Спасибо за замечание! буду думать)
Я предыдущим постом выдвигал идею реализации.
Re: Дата, время, сравнение, получение, установка.
Добавлено: 13 фев 2015, 15:30
wasiliysoft
А как быть если НТЧ установлен на 01:00? уже 3 день бьюсь не могу реализовать алгоритм, пока сделал только ограниченный в выборе НТЧ и КТЧ, то есть юзер может выбрать только из того что я предложу
Re: Дата, время, сравнение, получение, установка.
Добавлено: 13 фев 2015, 15:47
doter.ua
wasiliysoft писал(а):А как быть если НТЧ установлен на 01:00? уже 3 день бьюсь не могу реализовать алгоритм, пока сделал только ограниченный в выборе НТЧ и КТЧ, то есть юзер может выбрать только из того что я предложу
Лучше вообще сделать только Начало и длительность ТЧ: например в 18:00, 4 часа. Пусть юзеры сами считают.
P.S. Сначала проверяй, что больше НТЧ или КТЧ, а потом уже две разных реализации.
Re: Дата, время, сравнение, получение, установка.
Добавлено: 13 фев 2015, 22:01
wasiliysoft
Лучше вообще сделать только Начало и длительность ТЧ: например в 18:00, 4 часа. Пусть юзеры сами считают.
вот это идея мне по душе! Дерзко со стороны разработчика но надежно
Re: Дата, время, сравнение, получение, установка.
Добавлено: 14 фев 2015, 02:35
wasiliysoft
Имеем PHP код который работает при следующих условиях
// Начало тихих часов min 18:00 max 04:00 ($begin_silent_time)
// Конец тихих часов min 05:00 max 17:00 ($end_silent_time)
// Время берётся в формате чисел, например 01:30 будет как 130 а 17:30 будет как 1730
[syntax=php]
<?
if (1800 <= $begin_silent_time and $begin_silent_time < 2400) {
if ($time < $begin_silent_time and $time >= $end_silent_time) return = true;
}
if (0 <= $begin_silent_time and $begin_silent_time < 1800) {
if ($time < $begin_silent_time or $time >= $end_silent_time) return = true;
}
return false;
?>
[/syntax]
а теперь вопрос правильно ли я перевел его в JAVA (интересует перевод "and" и "or"
[syntax=java]
if (1800 <= begin_silent_time & begin_silent_time < 2400) {
if (time < begin_silent_time & time >= end_silent_time) return = true;
}
if (0 <= begin_silent_time & begin_silent_time < 1800) {
if (time < begin_silent_time | time >= end_silent_time) return = true;
}
return false;
[/syntax]