在Ubuntu上进行Fortran程序的时间和日期处理,你可以使用Fortran 90或更高版本中提供的标准库模块iso_fortran_env和date_and_time。以下是一个简单的例子,展示了如何在Fortran程序中获取当前的时间和日期:
program datetime_example
use iso_fortran_env, only: real64
use date_and_time, only: get_date, get_time, current_date, current_time, set_date, set_time
character(len=10) :: date_str
character(len=8) :: time_str
integer :: values(8)
real(real64) :: seconds_since_epoch
! 获取当前日期和时间
call get_date(date_str)
call get_time(time_str)
print *, 'Current date:', date_str
print *, 'Current time:', time_str
! 将日期转换为整数数组
read(date_str, '(I2, I2, I2)') values
print *, 'Date as integer array:', values
! 将时间转换为整数数组
read(time_str, '(I2, I2, I2)') values
print *, 'Time as integer array:', values
! 获取自某个时间点以来的秒数(例如,自0001-01-01以来的秒数)
call current_date(date_str)
call current_time(time_str)
read(date_str, '(I4, I2, I2)') values(1:3)
read(time_str, '(I2, I2, I2)') values(4:6)
seconds_since_epoch = (values(1) - 1) * 31536000 + &
values(2) * 2592000 + &
values(3) * 86400 + &
values(4) * 3600 + &
values(5) * 60 + &
values(6)
print *, 'Seconds since epoch:', seconds_since_epoch
! 设置日期和时间
call set_date('2023-01-01')
call set_time('12:00:00')
! 再次获取日期和时间以确认更改
call get_date(date_str)
call get_time(time_str)
print *, 'New date:', date_str
print *, 'New time:', time_str
end program datetime_example
在这个例子中,我们首先使用get_date和get_time子程序获取当前的日期和时间,并将它们打印出来。然后,我们将日期和时间转换为整数数组,并打印这些数组。接着,我们计算自0001-01-01以来的秒数,并打印这个值。最后,我们使用set_date和set_time子程序设置一个新的日期和时间,并再次获取它们以确认更改。
要编译这个Fortran程序,你可以使用gfortran编译器。在终端中,输入以下命令:
gfortran -o datetime_example datetime_example.f90
然后运行生成的可执行文件:
./datetime_example
请注意,这个例子使用了Fortran 2003标准中的date_and_time模块,因此你需要确保你的编译器支持这个标准或更高版本。如果你使用的是较旧的Fortran编译器,可能需要查找特定于该编译器的日期和时间处理方法。