Перейти к содержанию
Судебная медицина от Forens.ru
Forensic medical forum
Судебно-медицинский форум

Калькулятор для вычисления временных промежутков


myt

Рекомендуемые сообщения

При работе над алкогольным счетчиком возникла идея обрабатывать временные интервалы программно. То есть не чтобы эксперт сам высчитывал, сколько времени прошло между допустим 12.05 21.08.06 и 03.48 22.08.06, а потом вставлял временной интервал в программу, а программа это сама делела. Загвоздка оказалась в том, что большинство известных программ (тот же эксель) при вычислении промежутков между датами считает, что в каждом месяце 30 дней, а в каждом годе - 360. ПРо учет високаосных лет речь вообще не идет.

 

Безимени-1.jpg

 

В общем, так как код все-равно пришлось писать, то возникла идея сделать отдельную программку. Вводятся две даты и время, выдается ответ в виде недель, дней, часов, минут и секунд в заданнм интервале. Причем программа учитывает реальное количество дней в заданном интервале, так как отличает високосный год от простого, а январь от, нарпимер, апреля. Программа работает с 1756 по 9999 г, так что, хочется надеяться, скоро не устареет :D

Уважаемые myt, Boroda и Andrey!

 

Очень рад, что ваш сплоченный авторский коллектив наконец приоткрыл завесу и показал всю амбициозность планов! Думаю, что пока вы доделаете сам счетчки, вы еще пару-тройку программ напишите и еще с десяток запланируете, а там... :?/>

Первым делом я, например, выяснил, что с дня моего рождения прошло уже 9834 дня :?/>

Уверен, что эта программа найдет широкое применение в практике и не только в судебно-медицинской. Так что примите мои поздравления и благодарности за хорошую программу!

 

Есть и вопрос... Для целей алкогольного счетчика этого, конечно, не нужно, но если использовать программу отдельно, то не стоило ли указать временные промежутки еще и в годах? Например, с моей датой рождения есть только два варианта: или 1404 недели и 6 дней или 9834 дня. А вот если бы еще и ... лет ... недель ... дней, было бы совсем круто. Думаю, это не так сложно сделать, только не уверен нужно ли это...

Уважаемому myt особая благодарность за программку. Я лично не только при расчётах концентрации алкоголя вынужден часы считать, но и при врачебных делах. Поступил тогда-то, прооперировали первый раз тогда-то и т.д. и т.п.. Так что маленькая программка, но полезная.

Есть и вопрос... Для целей алкогольного счетчика этого, конечно, не нужно, но если использовать программу отдельно, то не стоило ли указать временные промежутки еще и в годах?
Хотел я так сделать, но встал перед неразрешимой проблемой - проблемой точности результата.

 

Вроде бы все просто кажется, например:

- между 00.00 31.12.03 и 00.00 01.01.05 - 1 год и 1 день (тоже просто);

- между 00.00 31.12.02 и 00.00 01.01.04 - 1 год и 1 день (тоже вроде просто);

Но... не смотря на то, что в обоих случаях ответы одинаковые, количество дней в заданном промежутке отличается ровно на 1 день (367 и 366 дней).

 

А с месяцами еще хуже. Ну захотели вы узнеть свой возраст в днях - все понятно - столько то дней. А в годах? Столько то лет + столько-то месяцев + недель + дней. Ответ получили, но... Какие годы в промежутке (365 или 366 дней, и сколько каких)? А месяцы (28,29,30,31 дней и каких сколько)?

 

Т.е. ответ в месяцах и годах давать можно, но тогда нажо приписывать кучу пояснений (что лень), либо делать ответ, который будет неудобочитаем и сложен в понимании... Например: "в заданном промежутке 45 простых лет + 15 високосных + 5 месяцев (из них столько-то длительностью по 28 дней, 15 месяцев длительностью по 29 дней, столько-то....., ).....

 

Или берем даты 01.06.03 и 01.07.04. В промежутке:

- 396 дней или

- 56 недель и 4 дня

- или 1 год и 31 день? (а может и 30 дней??) - так как фактического года между датами нет и непонятно, какой год брать 365 или 366...

 

Точность, в общем, страдает. А так как в эксперитзах и для подсчета промежутков для акушеров (брат у меня программку тут же хватанул :D ) нужны недели или дни, то рашено было на них и остановиться.

Хотел я так сделать, но встал перед неразрешимой проблемой - проблемой точности результата.

Вот что значит увидеть сразу готовый результат :?/> Нам пользователям это подавай, потом то, а пойди сам сделай - не так все и просто :?/>

 

Думаю, что даже при больших временных промежутках годы можно и в уме посчитать, ну или на обычно калькуляторе, если так не получается. Поэтому свой вопрос снимаю - действительно не стоит так заморачиваться.

Оно конечно с лишними заморочками всем понятно, что не требуется, но если в основе программы лежит реальный грегорианский календарь до 9999 года, то должно быть и решение проблемы месяцев и годов быть.

 

Опять же ответ, что 20 месяцев по 30, 2 по 28 дней действительно не нужен. Но ведь можно просто тогда 22 месяца вывести. Тоже и с годами. Зачем мне выводить сколько там дней в годах было,достаточно количества самих годов. Я понимаю конечно, что это всё сильно усложнить должно, но для бета версии, когда уже совсем делать нечего будет :D , можно будет ещё и это ввести в программку.

 

Так что уважаемому Valerich большое спасибо за конструктивные предложения.

 

Я вот подумал, что если это реальный календарь, то его же можно украсить лет через пять в программной версии 2.0 :wink: и расчётом например дат церковных праздников или дней медиков. В версии 3.0 популярного на планете всей счётчика появятся и ссылки на азиатские календари со всякими аналогами с годами змеи, петухов и прочих зверей :-P Но это уже на пенсии, кстати, сколько дней до неё осталось г-да?

Ну, код допустим у меня написан, годы считает, и месяцы. Причем по двум вариантам - общепринятому и моему.

 

Общепринятый прост - дни делятся на 360, получаем количество лет, остаток от деления делим на 30 - получаем месяцы, в остатке - дни. Но вот беда, за сто лет 5-6 неучитываемых дней года дадут более года разброса. Так что этот вариент я сразу отмел. А если делить на 365, то за 400 лет, допустим, 100 дней лишних набежит за чсет високосных лет. Мне это не нравится... Хотя и работает...

 

Мой вариант другой. В промежутке между датами годы считаются реальными (календарными). Т.е. берем 01.01.2000 и 31.12.2002.

Между ними 1 год и 364 дня. Проблемы нет.

 

Но она появляется, если число и месяц раннего года будут меньше числа и месяца позднего года. Т.е. между 01.06.03 и 01.07.05 - 1 год (2004-ый) + еще 396 дней. Тут я пасую, чтобы это было понятно простому пользователю без длинных и нудных моих объяснений (что все наверняка отметили :D ).

 

Делать же прогу, которая работает приблизительно желания нет, их и так полно.

 

Впрочем, буду думать, может осенит.

 

и расчётом например дат церковных праздников или дней медиков.
:D :D Точно... :D И вставить дни рождения разработчиков. Да так, чтобы программа за месяц пользователя начинала извещать: через 30 дней..., через 29 дней... :D Можно и через каждый час, причем чтобы еще комп сама включала, если выключен, но это уже совсем жестоко :D
Делать же прогу, которая работает приблизительно желания нет, их и так полно.

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

Как альтернативу могу предложить оставить все в таком виде, но добавить "кнопочку" - "подсчет в годах", после нажатия на которую откроется другое окно в верхней части которого будет предупреждение о приблизительности значений (без учета дней в месяце и высокосных годов) и считаться все будет как в обычной календарной программе, со всеми погрешностями. Просто иногда могут понадобиться именно "приблизительные" данные, так неужели ради этого еще одну программу на комп ставить?

Всем огромное спасибо за интерес к теме. Особое спасибо Andrey`ю за ссылки. Благодара им вычислил ошибку в работе программы. Выложенный в первом сообщении темы файл поменял.

 

Ошибка была в том, что високосный год вычислялся путем деления текущего года на 4. При получении целого ответа год считался високосным. Так как в промежутке времени, в котором я живу это работало, то я никогда не обращал внимания, что это правило имеет исключения. Оказывается, в Григорианском календаре правило вычисления високосного года несколько сложнее:

 

год високосен (то есть содержит 366 дней), если:

а) его номер делится на 4 и не делится на 100 или

б) его номер делится на 400.

 

Т.е. предыдущая верся программы правильно работала в промежутке с 1901 по 2099 годы, далее через каждые 400 лет накапливалась ошибка в одни сутки.

 

Большое спасибо всем за замечания и предложения.

По просьбам участников, бэта версия с подсчетом годов и месяцев. Все-таки что-то получилось, и не так уж приблизительно... Просто мне сложно представить, зачем это может понадобиться в счетчике алкоголя? Хотя, если дойдем до "счетчика радионуклидов", то не только годы, века вставлять придется :D .

Ну вот теперь вообще классно стало. Сейчас пересчитал всё с момента рождения, крещения, окончания школы, института...

 

Очень забавно! Но предлагаю несколько скучную панель "развеселить". В правом верхнем углу место ещё есть. Так как всё от алкогольного счётчика пошло, то предлагаю программку Эрику Видмарку посвятить и его фото (см в приложении) в правом углу расположить.

Её подписать: Erik Widmark (1989-1945) Father of the formula of the alcoholelimination

 

Как особую фишку можно ещё внизу время с момента опубликования его формулы в 1922 году выводить. Но не настаиваю, а то ещё побьёте :-P за балдёжный подход к серьёзным проблемам.

Так как всё от алкогольного счётчика пошло, то предлагаю программку Эрику Видмарку посвятить и его фото (см в приложении) в правом углу расположить.

Мне это предложение нравиться, хотя я в разработке не участвовал и права голоса не имею :-P

 

На сколько я понял, создать такой счетчик было довольно сложно, нужно было учесть массу всяких разных тонкостей. Может быть стоит сделать небольшое описание, открывающееся в отдельном окне. Там описать принципы по которым ведется подсчет в днях, неделях, месяцах и годах, чем эта программа отличается от остальных и т.п. Работа большая, можно и похвастаться :?/> А то сам себя не похвалишь, неделю как оплеванный ходишь! :D

Несколько соображений.

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

 

1. Чтобы было интуитивно понятно, думаю, что сожет быть стоит убрать в первом столбце недели?

Когда мы практически представляем временные интервалы, то обычно мы мыслим годами, месяцами и днями. Т.е. 3 года, 5 месяцев и 25 дней.

Это лично я так себе представляю. Может быть кто-то еще и неделями мыслит...

 

1.1. Может стоит оставить часы, мин и секунды только в последнем столбце? Они все равно не меняются. Хотя это нарушит логику. Вообще нужны они при больших периодах вычисления?

 

2. Нельзя ли сделать, чтобы дата "to", т.е. "до" которой надо провести отсчет была текущей датой?

 

3. Month возможно стоит заменить на Months - мн.ч.

 

4. to на To. Может to заменить на Up to?

1. Согласен, выглядит нелогично.

1.1. Над этим я долго мучался, приставал к окружающим с разными вопросами. Например, сколько дней между 2-ыи и 5-ым числами? Ответы: примерно 3/4 опрошенных - 3 дня, 1/8 - 2 дня, 1/8 начинали уточнять, "по 5-ое включительно?". Поняли? Большинство людей, что оказалась для меня новым, эту тему вопринимают абсолютно неосознанно, но по разному.

 

Первые просто получают разницу путем вычитания из большего меньшего. Вторые - их полные сутки в промежутке интересуют (как правило, это люди, привыкшие работать с табелями, отчетностью и пр.), они же - третьи. Но у первых есть ошибка. Большинство из них про вопрос сколько дней между 3-м и 4-м ответят - 0, а между 3 и 5-ым - 2 дня.

 

Это я все к чему - к вопросу о часах в программе. Программе этого не объяснишь. Поэтому она считает как первые, если в графах времени оставить нули. Только ошибку со смежеыми числами обходит. А для более продвинутых со временем остается возможность поиграть. Т.е. если в from и to время одинаковое, то программа считает по последние сутки включительно, если в to время несколько ранее, чем во from, то последнеи сутки не учитываются.

 

2. Сделам. Дейсвительно, как не додумался.

3. Да... Я писал про свой английский... :D

4. Andrey, скажи как лучше, я на слово поверю.

4. Andrey, скажи как лучше, я на слово поверю.

Дык. Не уверен, но Up to приятнее звучит и, кажется, имеет смысл "вплоть до" и "включительно"

Но я, пожалуй еще проверю.

Я перевел все тексты про алкогольный счетчик, но тоже нужно проверить с аборигенами. Пытался на словах - не понимают. Думаю надо будет картинки распечатать и показывать им предметно

Отлично, пока отпуск не кончился надо доделать.

 

Последняя версия калкулятора дат - DTCalk_202.rar

  • через 6 месяцев...

Я пока в программу myt не вникал. Вспомнил, что не так давно ходил в пенсионный фонд и узнавал данные о страховом стаже. Они тоже пользуются какой-то программой, считающей годы, месяцы и дни во временных промежутках. И программа эта долно быть имеет сертификацию. Можно обменяться опытом.

Можно обменяться опытом.
Можно, но вот код программы, чтоб его можно было в свои программы вставлять, они вряд ли дадут.

 

А у нас цель была именно такой. Калькулятор просто как побочный продукт получился.

  • через 2 месяца...

Заархивировано

Эта тема находится в архиве и закрыта для дальнейших ответов.



  • Новые сообщения

    • Guinness
      Согласен, я именно подсчёт количества пузырей не понял, для чего. 10 их там или 14, например  Или если есть какая то литература, что мол, на такую то площадь гиперемии столько то штук пузырей должно быть, тогда ладно 
    • solloom
      По нынешнему Приказу Минздрава РФ от 08.04.2025 N 172н  к тяжкому отнесли: Термические или химические, или электрические, или лучевые ожоги:  ... II степени с площадью поражения, превышающие 15% поверхности тела. Как по мне, если прижмут, то все, что с пузырями, должно пойти по 2 степени, а без пузырей по 1, с соответствующей оценкой.    
    • LEX
      велик и могуч русский язык) согласен...введут с нынешней цЫфровизацией для клиницистов обязательное фотографирование болезных  - будем фото затребовать, а пока приходится верить на слово  дык 1 пузырь- уже 2 я степень, а 2-я степень  сколь нибудь обширная- практически всегда  легкий будет...я сам  в молодом возрасте как то сгорел на солнце до пузырей- пару дней точно отвалялся весь в сметане)
    • Guinness
      Потому что есть, что запросить и посмотреть, так почему бы и нет?  А с записи хирурга что взять, кроме самой записи?  А что, бывает, что считают пузыри? Никогда не встречал такого.  А на что это влияет? 
    • Ksu
      Ждём результат экспертизы. Отпишусь как будет известно.
×
×
  • Создать...