формат даты в ДДМоный в фортране - PullRequest
0 голосов
/ 30 ноября 2011

Я хочу знать, есть ли какая-либо встроенная функция, которая преобразует дату в формат DDMonYY на фортране. Как я знаю, Idate возвращает дату в DDMMYYY. Но я хотел бы знать, как получить формат даты в DDMonYY. Мне нужно написать отдельную программу, которая извлекает месяц из Idate и записывает эквивалент символа (например, 1 для января)

Ответы [ 3 ]

2 голосов
/ 30 ноября 2011

Существует встроенная переменная DATE_AND_TIME , которая может возвращать нужную информацию, за исключением того, что вы получаете месяц в виде числового значения во втором элементе аргумента VALUES. Тогда будет достаточно легко использовать этот номер месяца в качестве индекса в массиве символов с (трехбуквенными) названиями месяцев.

2 голосов
/ 30 ноября 2011

Вот процедура, которая делает то, что вы хотите, и быстрая программа, которая проверяет это:

PROGRAM date_test

  CHARACTER(len=7) :: date

  CALL get_DDMonYY(date)

  PRINT*, date

CONTAINS

  SUBROUTINE get_DDMonYY(date)
    CHARACTER(len=7), INTENT(out) :: date

    CHARACTER(len=2) :: dd
    CHARACTER(len=3) :: mons(12)
    CHARACTER(len=4) :: yyyy
    INTEGER :: values(8)

    mons = ['Jan','Feb','Mar','Apr','May','Jun',&
      'Jul','Aug','Sep','Oct','Nov','Dec']

    CALL DATE_AND_TIME(VALUES=values)

    WRITE(  dd,'(i2)') values(3)
    WRITE(yyyy,'(i4)') values(1)

    date = dd//mons(values(2))//yyyy(3:4)
  END SUBROUTINE get_DDMonYY

END PROGRAM date_test
1 голос
/ 30 ноября 2011

AFAIK нет такого внутреннего, но совсем нетрудно написать собственную подпрограмму для этого. Вам просто нужно использовать что-то как

 write(mydate(3:5),fmt='(a3)') 'Jan'

где mydate - символ, который будет содержать DDMonYY.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...