Савладавање рачунања датума и времена

January 28, 2022

Многи орбасци користе Одабир датума. Без обзира да ли:

  • Процењујеш време завршетка пројекта
  • Радиш са пријавама
  • Уређујеш резервације

Увек ће се десити да мораш да израчуваш разлику између два датума. Када ситуација то захтева, можда ћеш морати да израчунате разлику до последњег минута.

Овај водич ће ти показати процес како да урадиш управо то. Имај на уму да овај водич није намењен да ти помогне да креираш цео образац већ само да ти да идеју како да извршаваш калкулације на два поља обрасца.

Прво морамо да причамо о „Epoch“ времену. Шта је то?

Уникс епоха („Unix epoch“ или „Unix time“ или „POSIX time“ или „Unix timestamp“) је број секнди који је прошао од 1. јануара 1970 (поноћ; временска зона по Гриничу) не узимајући у обзир преступне године (у ISO 8601: 1970-01-01T00:00:00Z). Буквално говорећи, епоха је Unix време 0 (поноћ 1. јануар 1970), али, се „епоха“ често користи као сисноним за Unix време.

Пригинална дефиниција цитирана са https://www.epochconverter.com/

Такође је битно да си упознат са виџетом за калкулације. Уколико ниси, препоручујемо да се упознаш са његовим опцијама пратећи овај водич. Следи табела која приказује преглед јединица времена у формату за читање и вредности у секундама које ћемо користити за калкулације:

Формат за читањеСекунди
1 минут60 секунди
1 сат3600 секунди
1 дан86400 секунди
1 месец (30.44 дана)2629743 секунди
1 година (365.24 дана)31556926 секунди

Погледај вредности у табели изнад јер ће се користити у калкулацијама које следе. Такође, ево су неке кључне ствари о томе како ће виџет за калкулације бити кориштен, зашто су неке формуле потребе и слично:

  • Разлика мора да буде у епоха формату. Због чега? Зато што, приликом тражења разлике два дана, подразумевана разлика је приказана у данима. Да конвертујемо дан у формат епохе (секунде), помножимо га са 86400.

Формула:

(Датум2Датум1) * 86400

  • Остатак је битан! Твоја калкулација ће се у главном основати на делењу и остаци су битни за одређивање преосталог броја месеци, дана, сати и минута.

Узмимо, 12345 као пример епоха времена. То је једнако са 3 сата, 25 минута и 45 секунди.

Да се добије резултат од 3 сата:

12345 / 3600 = 3.4291666667 ИЛИ 3 остатак 1545

Да се добије резултат од 25 минута:

1545 / 60 = 25.75 ИЛИ 25 остатак 45

  • Виџет не нуди начин да се добије тачан остатак приликом делења. Неки од вас су можда упознати са модуо операцијама у многим програмским језицима, али ово није доступно у виџету. Као алтернативу, користићемо децимална места количника да добијемо остатак.

Пример:

40 / 6 = 6 остатак 4

40 / 6 = 6.6666666667

Оба одговора изнад су тачна, и од њих добијемо следеће:

Цео број: 6

Децимално место: 0.6666666667

Остатак: 4

Да конвертујеш децимално место у остатак, потребно је помножити га са множиоцем, што је 6:

0.6666666667 x 6 = 4.0000000002

И онда то заокруглимо на 4.

Користићемо floor() функцију како бисмо добили цео број количника. Вреди споменути да floor() функција заокругљује број мамању вредност, ceil() на већу, док round() заокругљује на претходно дефинисани број децимала. Ово ће се затим одузети од количника како би се добио број децималних места (као у примеру изнад).

Повезани водич: Математичке функције

  • Време епохе би требало поделити са два делиоца:

31556926 је делилац за Годину, Месец и Дан

86400 је делилац за Сате и Минуте

  • Можеш да сакријеш поља која не желиш да буду видљива корисницима. У главном не желиш да прикажеш помоћна поља за рачунање на орбасцу.

Следи пример обрасца који ће се користити у наставку: https://form.jotform.com/220273198768971.

1. Додај сва потребна поља

  • Два поља за одабир датума
  • Виџет за калкулације обрасца

Два или три виџета за калкулације увек требају бити пристуна – разлика између времена у епоха формату и остатак (за рачунање године/месеца/дана или сата/минута, или за оба). Остатак је на теби и зависи од твојих потреба.

Пример:

Уколико је потребно да израчуваш разлику између сата и минута, потребно ти је 4 виџета:

  • Разлика у епоха формату
  • Остатак за сате/минуте
  • Сати
  • Минуте

Уколико ти је потребна разлика месеци, дана, сата и минута, треба да имаш 7 виџета за калкулације:

  • Разлика у епоха формату
  • Остатак за месец/дан
  • Остатак за сат/минут
  • Месеци
  • Дани
  • Сати
  • Минуте

Пример обрасца изнад користи 13 џицета за калкулације:

  • 3 неопходна виџета (Разлика у епоха формату и 2 остатка)
  • 5 виџета (права разлика у годинама > месецима > данима > сатима > минутима)
  • 5 виџета (преглед вредности за године, месеце, дане, сате и минуте)

2. Подешавање поља за одабир датума

Подешавање поља за одабир датума

Отвори подешавања поља за одабир датума и отвори картицу Време. Омогући поље за унос времена и подеси Формат времена да буде 24 часа.

3. Подеси да се резултати калкулација не могу мењати

Ово је опционо, али пожељно како корисници не би случано променили израчунате вредности приликом попуњавања обрасца.

4. Забавни део, додавање формула

Све опције ће бити овде, па одабери ону која ти је потребна за твој образац.

Дато:

Датум 1 = Jan 01, 2017 at 01:05

Датум 2 = Jun 30, 2036 at at 20:50

Епоха формат = 615239100

Разлика у епоха формату:

(Датум2Датум1) * 86400

Помножи разлику са 86400 да добијеш секунде у епоха времену.

Формула остатка (за Године > Месеце > Дане):

(Разлика у епоха формат / 31556926 – (

floor (Разлика у епоха формат / 31556926))) * 31556926

Ово можда делује компликовани, али, ово све смо урадити како би добили сотатак. Епоха формат је подељено са 31556926 зато што је то број секунди у години. Затим смо одузели заокругљену вредност од оригиналне вредности како би добили децимални остатак. Након тога је помножено опет са 31556926 за остатак.

Формуа остатка (За сате > Минуте):

(Разлика у епоха формату / 86400 – (

floor (Разлика у епоха формату / 86400))) * 86400

Иста идеја, само што множимо са 86400 да добијемо сате/минуте у дану.

Формула за године:

floor (Разлика у епоха формату / 31556926)

Ово је једноставно, само подели епоха време са 31556926 и заокругли доле за количник.

Формула за месеце:

floor (Остатак за г/м/д / 2629743)

Сада користимо Остатак за г/м/д (годину, месец и дан), и делимо са 2629743 да добијемо број преосталих месеци.

Формула за дане:

floor (((Остатак за г/м/д / 2629743) – Месеци) * 30.44

Ово мора бити подељено са 30.44 да се добије број преосталих дана.

Формула за сате:

floor(Остатак за С/М / 3600)

Подели Остатак за С/М (сате/минуте) са 3600, број секунди у једном сату. Затим заокругли резултат.

Формула за минуте:

round(((Остатак за С/М / 3600) – Сати) * 60)

Уместо да користимо floor(), овог пута ћемо користити round(). Велике вредности времена захтевају коришћење floor() функције како би добили мање преостале вредности времена. А будући да су минуте најмање, само треба бити заокругљено.

Следећих 5 формула је опционо, у случају да постоји потреба за њима. Следи преглед свих опција за време:

Године:

floor(Разлика у епоха формату / 31556926)

Месеци:

floor(Разлика у епоха формату / 2629743)

Дани:

floor(Разлика у епоха формату / 86400)

Сати:

floor(Разлика у епоха формату / 3600)

Минуте:

floor(Разлика у епоха формату / 60)

Да, све ове информације можда делују збуњујуће у почетку, али када једном уђеш у фазон, поготово део око остатка, све ће имати више смисла ?

Клонирај пример обрасца како би боље разумео како све калкулације функционишу.

Повезани водич: Како клонирати постојећи образац користећи URL

Уколико имаш питања или сугестије, слободно их остави у коментарима испод.

Да ли је ово било од помоћи?
Контактирај подршку:

Наш тим подршке је доступан 24/7 и просечно време одговора је до 2 сата.
Можеш контактирати наш тим путем:

Форум подршке: https://www.jotform.com/answers/

Контактирај Jotform подршку: https://www.jotform.com/contact/

Пошаљи коментар:

Jotform Avatar
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Коментар:

Podo CommentБуди први који ће прокоментарисати