Перейти к содержанию
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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Кстати о календарях.

http://calendar.x0.ru/index.php?p=12

 

вычисление времени (wiki) там далее см. ссылки.

какой-то календарный компонент

http://soft.xyya.ru/soft/49/4119/index.html

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Делать же прогу, которая работает приблизительно желания нет, их и так полно.

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Всем огромное спасибо за интерес к теме. Особое спасибо 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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Надо как в армии:

Наберите салаг и пускай деньки считают. :)/>

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты



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

    • Коллега Недугов Г.В. сообщил, что на имя его сына была зарегистрирована программа расчёта давности образования субдуральных гематом по концентрации метгемоглобина. С чем мы его сына и поздравляем   Возникает конечно вопрос о специальных знаниях автора, который в судебной медицине не работает и, даже (!) не обладает никаким медицинским образованием, поскольку школьник ещё. Но у него всё ещё впереди, что здорово. Школьники регистрируют спец. программы для очень узких спецов - и это тоже хорошо.   Можно ли и нужно ли рекомендовать такие работы школьников к работе в серьёзных экспертных учреждениях? Вопрос риторический конечно, но не праздный. При всём уважении к молодёжи я бы не пошёл на заседание суда, зная, что мои результаты подсчитаны школьником без мед. образования. Но в рамках научного поиска очень хорошее начинание и мы еще раз поздравляем автора с его несомненным успехом!   PS Хотелось бы узнать у автора формулы расчёта где он её взял, как она выглядит, где опубликована в научной литературе и кем проверена. Без этой инфы это некая подпольная личная инициатива. А если формула опубликована, то её авторство известно (как наприм. формула Видмарка) и её можно использовать любому читателю. А иначе зачем её публиковали, ну если публиковали.
    • Не знал, что бывают какие-либо кроме медного (у меня медный), сурьму и барий определяю. Пик меди есть всегда, но это не мешает определять её привнесение.
    • Не нагнал. Спасибо.  По методике предлагается трехзональное иссечение ткани мишени. Результаты очень интересные.  Не зря питерские учёные и ув. И. Макаров за эту тему взялись.    Клокин. На Спектроскан бывают разные электроды. От них в некоторой степени зависит что ты видишь. А меня серебряный. Сурьму практически недоступна
    • Уважаемые коллеги! Представляю вашему вниманию новый мультидисциплинарный журнал "Наука и инновации в медицине": http://www.innoscience.ru/ Журнал «Наука и инновации в медицине» учреждён в 2016 году. Учредителем и издателем журнала является Самарский государственный медицинский университет. Миссия журнала — знакомить читателей с современными достижениями медицинской науки и практики и помогать врачам в освоении передовых принципов диагностики и лечения широкого спектра заболеваний. Авторами публикаций являются не только отечественные, но и иностранные ученые и врачи. Все материалы издания проходят тщательную научную экспертизу в т.ч. с участием сотрудников научно-образовательного центра доказательной медицины: http://www.nocdm.ru/ В составе редакционной коллегии журнала — известные российские специалисты, в том числе действительные академики РАН. В редакционный совет журнала входят ведущие учёные России, Белоруссии, Казахстана, Узбекистана, США, Франции, Германии, Сербии, Македонии. Журнал выходит 4 раза в год. Он включен в информационно-библиографическую базу РИНЦ Научной электронной библиотеки. В настоящее время идет рецензирование последнего выпуска журнала за № 3 в аспекте включения журнала в перечень ВАК.  В будущем планируется включение журнала в Пабмед и Скопус, поэтому требования для представления рукописи в редакцию такие же, например, как и в журнал "Судебно-медицинская экспертиза", только еще и степень участия каждого автора нужно указывать. Подробнее о требованиях:  http://www.innoscience.ru/files/2016/requirements.pdf В настоящее время начат прием статей по патологической анатомии и судебной патологии. Это означает, что можно засылать статьи по судебной медицине, если выполнены следующие условия: 1. Формально статья направлена по специальности "Патологическая анатомия" или иной специальности, по которой ведется прием статей в журнал: http://www.innoscience.ru/home/specialty/ 2. Статья содержит описание какой-либо новой диагностической методики, открытия, инновации. 3. Исследование основано на принципах доказательной медицины с обязательным корректно выполненным математико-статистическим анализом. Приветствуется грамотное использование морфометрических методов (пузологию не предлагать!). Таким образом, журнал будет интересен специалистам тех учреждений судебно-медицинской экспертизы, одним из научных направлений которых является разработка клинических проблем (например, одним из таких направлений Самарского бюро судебно-медицинской экспертизы является "Диагностика хронических вирусных гепатитов и их осложнений и прогнозирование их исходов"), а также специалистам, работающих в областях судебной медицины, пограничных с какими-либо клиническими областями. Двухлетний импакт-фактор журнала с учетом самоцитирования выше, чем у любого из существующих судебно-медицинских изданий. Одновременно с печатной версией на сайте журнала появляется электронная полнотекстовая версия каждой статьи. Тот, кто действительно этого хочет, имеет возможность оформить подписку на журнал. Журнал не оказывает никакого давления на авторов, не желающих подписываться на журнал, т.е. публикация всех материалов реально бесплатная! Сроки публикации - 2-3 месяца. Статьи по чистой судебной медицине (травматология, токсикология, генетика, серология и т.п.), а также по юридическим наукам (криминалистика) к рассмотрению не принимаются. Сегодня вышел третий номер журнала с первой, опубликованной в нем статьей по судебной патологии: http://www.innoscience.ru/latest/        
  • Новые альбомы

  • Новые записи блога

×