- 积分
- 56
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2012-10-9
- 最后登录
- 1970-1-1
|

楼主 |
发表于 2012-10-25 14:37:03
|
显示全部楼层
topmad 发表于 2012-10-25 14:27
这个算法好复杂....
我就喜欢DAY OF YEAR
一年的第几天啊。。。不过SA雷达数据说明里的那个儒略日是从1970年1月1日开始,显示出来得写成公历才行。有个fortran写的计算日期是一年第几天的程序,matlab没写过。。
program main
implicit none
integer iyear,iDDD,imonth,iday
character*2 cyear*4,cDDD*3,cmonth,cday
integer mday(12),leap
integer remn
iyear = 2007
write(cyear,"(I4)") iyear
print*,"INPUT THE year and DDD: year DDD"
read(*,*)iyear,iDDD
print*,"Processing ",iyear,iDDD
write(cDDD,"(I3)") iDDD
if ( iDDD .LT. 10 ) cDDD(1:2)="00"
if ( iDDD .LT. 100 ) cDDD(1:1)="0"
iday = iDDD
data mday/31,28,31,30,31,30,31,31,30,31,30,31/
imonth = 01
leap = 0
remn = 0
remn = mod(iyear,100)
if (remn == 0 ) then
remn =mod(iyear,400)
if(remn == 0)then
leap = 1
endif
else
remn =mod(iyear,4)
if(remn == 0)then
leap = 1
else
leap = 0
endif
endif
if ( leap == 1)then
mday(2)=mday(2)+1
endif
do while (iday > mday(imonth))
iday = iday - mday(imonth)
imonth = imonth+1
enddo
print*,iyear,imonth, iday
write(cmonth,"(I2)") imonth
write(cday,"(I2)") iday
if ( imonth .LT. 10 ) cmonth(1:1)="0"
if ( iday .LT. 10 ) cday (1:1)="0"
write(*,"(A6,A5,2A4)")cyear,cDDD,cmonth,cday
end |
|