С Новым годом! Форум программистов, компьютерный форум, киберфорум
Программирование Android
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
4 / 4 / 3
Регистрация: 20.11.2013
Сообщений: 150

Проверка времени и вывод сообщения

15.08.2017, 10:27. Показов 1018. Ответов 16
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет есть приложение есть функция вывода времени по заданному календарю в формате HH:mm
Нужно дописать проверку если время выбранное отличается от времени на данный момент на 1 час бить тревогу
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
15.08.2017, 10:27
Ответы с готовыми решениями:

Вывод даты, времени и сообщения в файл
День добрый всем! Возникла такая проблема. Надо на C++ Builder 6 сделать простейшую прожку. Одна кнопка. При нажатии на нее в текущей...

Вывод сообщения через определенные интервалы времени
Помогите пожалуйста написать программу, которая бы выводила каждую минуту сообщение «Hello!».

Конструкция try except проверка и вывод сообщения
Всем привет. Ситуация: для события при открытии формы прописан код, который: 1. проверяет наличие файла в каталоге 2. если он...

16
1570 / 1168 / 426
Регистрация: 08.05.2012
Сообщений: 5,219
15.08.2017, 10:45
Ну и? Какой вопрос? Переводишь время в long, вычитаешь друг из друга, если больше 3600000 по модулю, то труби в рога.
0
4 / 4 / 3
Регистрация: 20.11.2013
Сообщений: 150
15.08.2017, 10:46  [ТС]
Попробовал вот так ошибка

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
dateTime.set(Calendar.HOUR_OF_DAY, hourOfDay);
            dateTime.set(Calendar.MINUTE, minute);
 
 
            String timeFormat = "HH:mm";
            SimpleDateFormat stf = new SimpleDateFormat(timeFormat, Locale.US);
 
 
            Date parse = null;
            try {
                parse = stf.parse(timeFormat);
            } catch (java.text.ParseException e) {
                e.printStackTrace();
            }
            long timeDeff = System.currentTimeMillis() - parse.getTime();
                if (timeDeff > 1) {
                    eTime.setText(stf.format(dateTime.getTime()));
                    eTime.setVisibility(View.VISIBLE);
 
                } else if (timeDeff == 0) {
                    Toast toast = Toast.makeText(getApplicationContext(),
                            "Пора покормить кота!", Toast.LENGTH_SHORT);
                    toast.show();
 
 
                } else {
 
                }
0
0 / 0 / 0
Регистрация: 15.08.2017
Сообщений: 8
15.08.2017, 10:56
Могу ошибаться, сам недавно начал под android писать, но вроде тебе нужен AsyncTask.
Вот здесь есть пример AsyncTask с таймером.
0
2884 / 2296 / 769
Регистрация: 12.05.2014
Сообщений: 7,978
15.08.2017, 11:10
асинктаск для коротких задач, так что не годится

Цитата Сообщение от dripservice Посмотреть сообщение
Попробовал вот так ошибка
тут принято показывать лог ошибки
0
1570 / 1168 / 426
Регистрация: 08.05.2012
Сообщений: 5,219
15.08.2017, 11:13
Неужели тебе самому удобно и приятно работать с такими переменными, нужно сильно напрячься, чтобы что-то понять. Во-первых, вместо parse.getTime() -> dateTime.getTimeInMillis(). И что это за условия потом, ты хоть понимаешь, что время в лонге это миллисекунды, а не часы?
0
4 / 4 / 3
Регистрация: 20.11.2013
Сообщений: 150
15.08.2017, 11:25  [ТС]
Да я понимаю и переменные не мои а для примера копировал
Уже без ошибок но не считает правильно
Точнее System.currentTimeMillis я так понимаю тут и дата тоже переводится а у меня только часы и минуты

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 String timeFormat = "HH:mm";
                SimpleDateFormat stf = new SimpleDateFormat(timeFormat, Locale.US);
 
            long timeDeff = System.currentTimeMillis() - dateTime.getTimeInMillis();
            if (timeDeff > 3600000) {
                eTime.setText(stf.format(dateTime.getTime()));
                eTime.setVisibility(View.VISIBLE);
 
            } else if (timeDeff == 0) {
                Toast toast = Toast.makeText(getApplicationContext(),
                        "Что то делаем!", Toast.LENGTH_SHORT);
                toast.show();
 
 
            } else {
 
            }
0
1570 / 1168 / 426
Регистрация: 08.05.2012
Сообщений: 5,219
15.08.2017, 11:33
Java
1
2
3
Calendar dateTime= Calendar.getInstance();
dateTime.set(Calendar.HOUR_OF_DAY, hourOfDay);
dateTime.set(Calendar.MINUTE, minute);
0
4 / 4 / 3
Регистрация: 20.11.2013
Сообщений: 150
15.08.2017, 11:35  [ТС]
Эти строки выше я их не копировал
Условие не работает так как он переводит и дату в миллисекунды (System.currentTimeMillis) как перевести только время на данный момент

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
dateTime.set(Calendar.HOUR_OF_DAY, hourOfDay);
                dateTime.set(Calendar.MINUTE, minute);
 
 
                String timeFormat = "HH:mm";
                SimpleDateFormat stf = new SimpleDateFormat(timeFormat, Locale.US);
 
 
 
 
 
            long timeDeff = System.currentTimeMillis() - dateTime.getTimeInMillis();
            if (timeDeff > 3600000) {
                eTime.setText(stf.format(dateTime.getTime()));
                eTime.setVisibility(View.VISIBLE);
 
            } else if (timeDeff == 0) {
                Toast toast = Toast.makeText(getApplicationContext(),
                        "Что то делаем!", Toast.LENGTH_SHORT);
                toast.show();
 
 
            } else {
 
            }
0
1570 / 1168 / 426
Регистрация: 08.05.2012
Сообщений: 5,219
15.08.2017, 11:45
Я уже утомился объяснять очевидное, есть текущая дата в мс от 1970г., есть какая-то там дата в таком же формате, вычев одно из другого мы получим разницу во времени между этими событиями в мс, которые легко конвертируются в часы, века и т.д.
0
4 / 4 / 3
Регистрация: 20.11.2013
Сообщений: 150
15.08.2017, 11:49  [ТС]
Если Вы утомились то не объясняйте я же вас не заставляю?
Я понимаю что вы имеете ввиду но так не выходит потому что в моем пикере только часы, там нет даты

Тогда вопрос как такую строчку вида 20:18 перевести в миллисекунды вот этот ответ и поможет решить задачу
0
1570 / 1168 / 426
Регистрация: 08.05.2012
Сообщений: 5,219
15.08.2017, 11:51
См. сообщение №8.
0
4 / 4 / 3
Регистрация: 20.11.2013
Сообщений: 150
15.08.2017, 11:55  [ТС]
Не понимаю как это относится к
Java
1
long timeDeff = System.currentTimeMillis() - dateTime.getTimeInMillis();
0
1570 / 1168 / 426
Регистрация: 08.05.2012
Сообщений: 5,219
15.08.2017, 11:55
Если простые варианты тебя не устраивают, ты можешь текущую дату перевести в timestamp и достать оттуда часы и минуты, но вот вопрос, как ты сравнишь 23:50 и 00:50?
0
2884 / 2296 / 769
Регистрация: 12.05.2014
Сообщений: 7,978
15.08.2017, 12:00
еще раз, с нуля - в чем вопрос?
0
1570 / 1168 / 426
Регистрация: 08.05.2012
Сообщений: 5,219
15.08.2017, 12:00
getInstance задаёт календарю текущее дату, часовой пояс и т.п., затем ты выставляешь в нём своё время и вынимаешь long мс.
0
4 / 4 / 3
Регистрация: 20.11.2013
Сообщений: 150
15.08.2017, 12:38  [ТС]
Нужно в пикере выбрать время если сейчас 12:00 а я выбираю 12:00 или 12:59 выводить ошибку что такое время выбрать нельзя только начинаю с 13:00

Добавлено через 36 секунд
Пробую так считает не верно почему то

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
dateTime.set(Calendar.HOUR_OF_DAY, hourOfDay);
            dateTime.set(Calendar.MINUTE, minute);
 
            String timeFormat = "HH:mm";
            SimpleDateFormat stf = new SimpleDateFormat(timeFormat, Locale.US);
 
 
 
 
 
 
 
 
            long timeDeff = dateTime.getTimeInMillis() - System.currentTimeMillis();
            if (timeDeff > 3600000) {
                eTime.setText(stf.format(dateTime.getTime()));
                eTime.setVisibility(View.VISIBLE);
 
            } else if (timeDeff < 0) {
                Toast toast = Toast.makeText(getApplicationContext(),
                        "Что то делаем!", Toast.LENGTH_SHORT);
                toast.show();
 
 
            } else {
 
            }
Добавлено через 15 минут
Все разобрался всем спасибо


Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
  long timeDeff = dateTime.getTimeInMillis() - System.currentTimeMillis();
            if (timeDeff < 3600000) {
                Toast toast = Toast.makeText(getApplicationContext(),
                        "Что то делаем!", Toast.LENGTH_SHORT);
                toast.show();
 
            } else if (timeDeff == 3600000) {
                Toast toast = Toast.makeText(getApplicationContext(),
                        "Что то делаем!", Toast.LENGTH_SHORT);
                toast.show();
 
 
            } else {
                eTime.setText(stf.format(dateTime.getTime()));
                eTime.setVisibility(View.VISIBLE);
 
            }
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
15.08.2017, 12:38
Помогаю со студенческими работами здесь

Проверка StrToInt и вывод сообщения
Как сделать что бы в случае ошибки в строке IntToStr(Edit1-&gt;Text); (то есть если был введен текст, а я его преобразовываю) программа не...

Вывод сообщения на экран через равные промежутки времени
Как реализовать резидентную программу на ассемблере, задача которой в следующем: осуществлять через равные промежутки времени вывод на...

Проверка введенного в поле значенияпо маске и вывод сообщения
Привет. Есть форма ввода логина и пароля,требуется сравнить введенный пароль с определенным значением и вывести сообщение если совпало. ...

Реализовать при помощи таймера вывод сообщения через разные промежутки времени
Здравствуйте вот код procedure TForm1.Timer11Timer(Sender: TObject); begin Timer11.Enabled:=False; Timer11.Interval :=...

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


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Новые блоги и статьи
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Old Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru