在Fortran的DDMonYY中的日期格式

时间:2011-11-30 10:19:17

标签: fortran

我想知道在fortran中是否存在将日期转换为DDMonYY格式的内部函数。 据我所知,Idate在DDMMYYY中返回一个日期。但我想知道如何在DDMonYY中获取日期格式。我需要编写一个单独的程序,从Idate中提取月份并写出等效的字符(如1中的1)

3 个答案:

答案 0 :(得分:2)

DATE_AND_TIME内在函数可以返回您想要的信息,除了您在VALUES参数的第二个元素中将月份作为数值。那么应该很容易使用该月号作为具有(3个字母)月份名称的字符数组的索引。

答案 1 :(得分:2)

这是一个做你想要的例程和一个测试它的快速程序:

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

答案 2 :(得分:1)

AFAIK没有这样的内在,但编写自己的子程序并不困难。你只需要使用

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

其中mydate是包含DDMonYY的字符。