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