Страница 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 часа. Пусть юзеры сами считают.
:D вот это идея мне по душе! Дерзко со стороны разработчика но надежно ;)

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]