Моя цель состоит в том, чтобы заставить fortran вернуть разницу между двумя моментами, которые были переданы как символьные строки, очень симулятивные для TimeDiff VBA. Я уже давно занимаюсь обработкой даты и времени в fortran, но не смог найти то, что мне нужно в этом сумасшедшем случае. Первой проблемой в fortran является преобразование строки в следующую вычислимую переменную времени. time_and_dates ctime, например, преобразует время в строку символов, но то, что нужно в моем случае, является полной противоположностью.Дата Время Разница в Fortran
Поскольку fortran легко вычисляет такие вещи, как точечные часы на время, требуемое для завершения программы, и даже отделяет время от самой системы, он, очевидно, способен вычислять такие вещи, если мои мысли правы до сих пор.
Но как передать мою строку «YYYYMMDD HHMMSS» в формат времени, как рассчитать с ней и как выражать вывод?
Вот пример того, где это должно привести:
date1 = as.date("20130512 091519") !Stringinput
date2 = as.date("20131116 120418")
result = time.difference(date1,date2,outputunit="seconds")
print*, 'time diff in sec: ', result !returns something like 4646345 as Integer
Благодаря Фортрансу способности делать такие расчеты в другом контексте (секундомер и т.д.), я был бы очень признателен решением, которое не предполагает какое-либо Экстерн расширения или приключенческое ручное кодирование (365 ... високосный год ... /400..и т.д.).
Есть ли способ использовать общие возможности fortran и системы (win64) для моей цели?
Если нет, то каким образом система передает свою информацию о времени в fortran и может ли это быть имитировано (поэтому вместо этого источник не является «системой», а «символьной строкой»)?
EDIT: Спасибо за вход до сих пор, но, как упоминалось выше, я бы предпочла использовать возможности fortrans intern (как это происходит в секундоме) для задания вместо расширений или ручных вычислений. Мне трудно верить в то, что дата & время может быть преобразовано только в символ, но не в другую сторону ... но в любом случае спасибо.
Fortran не имеет замечательной внутренней поддержки для обработки строк и преобразования в другие типы. Поэтому иногда нет другого пути, кроме как реализовать их самостоятельно. Я отредактировал свой ответ ниже, дайте мне знать, если это вам поможет. Я был бы признателен за отзывы об этом. – milancurcic