Торможу с интервалом | |
---|---|
PaulWist Автор Сообщений: 14625 Дата регистрации: 01.04.2004 |
Братцы.
Торможу, нет красивого решения. Дано: Время "отсечки" в часах и минутах, а-ля 0.00, 00.30, 1.00, 1.30..... 23.00, 23.30 Найти: Сколько осталось до времени "отсечки" в секундах, например time = 9.22 до 9.30 = 8 мин ------------------ Есть многое на свете, друг Горацио... Что и не снилось нашим мудрецам. (В.Шекспир Гамлет) |
Re: Торможу с интервалом | |
---|---|
Sergey_K Сообщений: 15 Дата регистрации: 07.05.2018 |
Добрый день.
Допустим отсечка в 12:00 12*60 - SECONDS()/60 |
Re: Торможу с интервалом | |
---|---|
Владимир Максимов Сообщений: 14100 Откуда: Москва Дата регистрации: 02.09.2000 |
1. Перевести все значения в сопоставимые величины. В данном случае - в минуты
2. Текущее время также перевести в минуты 3. Найти ближайшее большее из списка к текущему значению и получить разницу Как уже неоднократно и по разным поводам упоминалось, если речь идет о списке (любом), то этот список надо хранить в таблице. Тогда все сильно упрощается. У таблицы есть значение, которое видит пользователь (те самые 0.00, 0.30, ...) и значение, по которому будет выполняться анализ (0, 30, 60, ...). Остается только текущее значение перевести в нужное значение и выполнить поиск по списку Собственно, можно сделать таблицу минут в сутках. 24*60 = 1440 записей. И для каждой записи добавить поле с нужным форматом вида 9.22. Судя по задаче, эта таблица будет очень востребована |
Re: Торможу с интервалом | |
---|---|
PaulWist Автор Сообщений: 14625 Дата регистрации: 01.04.2004 |
Спасибо, Володь. Именно так сделал. ------------------ Есть многое на свете, друг Горацио... Что и не снилось нашим мудрецам. (В.Шекспир Гамлет) |
Re: Торможу с интервалом | |
---|---|
Артём Сообщений: 117 Дата регистрации: 23.04.2001 |
Часто время хранится в виде количества секунд , прошедших с какого-то фиксированного момента.
поэтому их можно вычитать, делить и складывать так. добавить неделю, обычно +7*24*60*60 поэтому по сабжу
|
Re: Торможу с интервалом | |
---|---|
of63 Сообщений: 25256 Откуда: Н.Новгород Дата регистрации: 13.02.2008 |
Мтк, просто - датавремя = число. В фоксе можно вычитать время из время, получать кол. секунд. перевести разницу в секундах в дииапазон датавремя-датавремя - проблемно. Почему не два значения (от заданного, раз диапазон).... Поучаствовал ) Доб) Обычно задача в том чтобы "от начального времени, через столько минут, сработало" Исправлено 1 раз(а). Последнее : of63, 27.07.23 20:24 |
Re: Торможу с интервалом | |
---|---|
akvvohinc Сообщений: 4224 Откуда: Москва Дата регистрации: 11.11.2008 |
Цитата:В полях типа DATETIME() данные хранятся в формате, отличном "количества секунд, прошедших с какого-то фиксированного момента". Но несмотря на это, их можно вычитать, как в примере, который вы привели. Что же касается "делить и складывать", то никогда ранее не слышал о такой возможности, а мой Фокс на это не способен. |
Re: Торможу с интервалом | |
---|---|
akvvohinc Сообщений: 4224 Откуда: Москва Дата регистрации: 11.11.2008 |
Непонятно, что ты имеешь в виду. Вообще всё - есть последовательность битов, которую комп считает представлением некоторого двоичного числа. Но если не знать системы кодирования, то простое знание числа ничем не поможет. Без этого ты не сможешь просто взять число, лежащее в поле DateTime и соответствующее какой-то дате/времени, и производить с ним какие-то осмысленные манипуляции. Вот число, соответствующее некоторому значению DateTime: FA 89 25 00 7D 3D A3 00Можешь увеличить его на 1 секунду или вычесть другое значение DateTime? Исправлено 1 раз(а). Последнее : akvvohinc, 28.07.23 03:03 |
Re: Торможу с интервалом | |
---|---|
of63 Сообщений: 25256 Откуда: Н.Новгород Дата регистрации: 13.02.2008 |
типа да, фокс имеет ввиду "время" - это кол секунд от "нулевой даты" плюс доли секунды от единицы...
Скажи твою версию представления даты в фокcе как числа в 64-битном представлении ? () FA 89 25 00 7D 3D A3 00 - смотрел, епался, недолго (тк ничего не понял) () но, как число, оно прибавляется-вычитается с/из чиста, как скекунд Исправлено 2 раз(а). Последнее : of63, 30.07.23 19:46 |
Re: Торможу с интервалом | |
---|---|
of63 Сообщений: 25256 Откуда: Н.Новгород Дата регистрации: 13.02.2008 |
это дробное число, в Double, и число секунд его (от часа икс) - число секунд от этой условленной даты () Серега! Ты гений ) Исправлено 1 раз(а). Последнее : of63, 30.07.23 19:49 |
Re: Торможу с интервалом | |
---|---|
of63 Сообщений: 25256 Откуда: Н.Новгород Дата регистрации: 13.02.2008 |
Ю Без этого ты не сможешь просто взять число, лежащее в поле DateTime и соответствующее какой-то дате/времени, и производить с ним какие-то осмысленные манипуляции.
Математики делают из твоих слов вывод, что твое понятие о "и производить с ним какие-то осмысленные манипуляции." имеет смысл, смычсл именно твоих понятий увеличивается если прибавляю уменьшается если вычитаю сбьрасываю, если "обнуляю" умножаю на 1, если умножаю на 1 просто "математика", набор условностей... ()()() Я имел ввиду "прибавить 1 сек" к понятию "мы храним милисекунды от 1980 года, или подобно"... Серега, соберись! ) Исправлено 2 раз(а). Последнее : of63, 30.07.23 20:08 |
Re: Торможу с интервалом | |
---|---|
of63 Сообщений: 25256 Откуда: Н.Новгород Дата регистрации: 13.02.2008 |
Кстати "интервал" - важное понятие в ОТО (и в СТО) ... Этл синоним понятия "расстояние! в 4-мире (включающее время, но... с учетом отрицатеноно коэфф. при времени... вам еще ето рано)
|
Re: Торможу с интервалом | |
---|---|
akvvohinc Сообщений: 4224 Откуда: Москва Дата регистрации: 11.11.2008 |
А вот и нет. Здесь два целых числа - одно для даты, другое для времени, причем, время с точностью до миллисекунды. И поэтому если ты, как написал выше, будешь рассматривать его как число Цитата:то ничего путного из этого не получится. Но это - хранение DateTime в таблице. В памяти наверняка иначе - не выяснял, но уверен, что не дробное, а как целое. Исправлено 1 раз(а). Последнее : akvvohinc, 31.07.23 04:03 |
Re: Торможу с интервалом | |
---|---|
Артём Сообщений: 117 Дата регистрации: 23.04.2001 |
Исправлено 1 раз(а). Последнее : Артём, 31.07.23 03:41 |
Re: Торможу с интервалом | |
---|---|
akvvohinc Сообщений: 4224 Откуда: Москва Дата регистрации: 11.11.2008 |
Не пойдёт.
Не должно быть так, что время с разницей в 2 секунды даёт разницу в 2 минуты. Посчитайте результат для таких, например, значений a 2023.07.01, 00:29:59 2023.07.01, 00:30:00 2023.07.01, 00:30:01 А вообще проще исходить из того, что: 1) количество секунд в получасе sec30min = 1800 2) количество секунд, прошедших с начала часа secpassed = MINUTE(dt)*60 + SEC(dt) 3) тогда до очередной отсечки осталось секунд sectoсutoff = sec30min - secpassed + IIF(secpassed>sec30min,sec30min,0) |
Re: Торможу с интервалом | |
---|---|
of63 Сообщений: 25256 Откуда: Н.Новгород Дата регистрации: 13.02.2008 |
Твой пост (про датавремя и дата) обозревать, как оно хранится в БД, и как в памяти фокса (это нам не очень доступно) сбсудать интересно было бы, Александр, но это обычная забота прогера, как это все устроено в памяти/файле, пусть сами разбираются, задача банальная, учебная . () Надо ребенка спросить, как сохранить [дату]время в виде числа (дробного, или целого), что бы он предложил.... Хотел добавить "кроме мычания", но они растут вроде... Исправлено 1 раз(а). Последнее : of63, 09.08.23 23:10 |
© 2000-2024 Fox Club  |