我的目标是让 fortran 返回作为字符串传入的两次之间的差异,这与 VBA 的 TimeDiff 非常相似。我已经在 fortran 中处理日期和时间很长一段时间了,但在这种特殊情况下找不到我需要的东西。fortran 中的第一个问题是如何将字符串转换为更进一步的可计算时间变量。例如 time_and_dates ctime 将时间转换为字符串,但在我的情况下需要的是完全相反的。
由于 fortran 很容易计算出程序完成所需时间的点表之类的东西,甚至显示系统本身的时间,如果到目前为止我的想法是正确的,它显然能够计算出这些东西。
但是如何将我的字符串“YYYYMMDD HHMMSS”传递给时间格式,如何用它计算以及如何对输出进行短语化?
这是一个应该导致的例子:
date1 = as.date("20130512 091519") !Stringinput
date2 = as.date("20131116 120418")
result = time.difference(date1,date2,outputunit="seconds")
print*, 'time diff in sec: ', result !returns something like 4646345 as Integer
由于 fortrans 能够在其他情况下进行此类计算(秒表等),我非常感谢一个不涉及任何外部扩展或冒险手动编码的解决方案(365 ...闰年... /400 ..等等)。
有没有办法为我的目的使用fortran和系统(win64)的实习机会?
如果不是,通过哪种方式将系统的时间信息传递给fortran,这可能被模仿(所以源不是“系统”而是“字符串”)?
编辑:到目前为止,感谢您的输入,但如上所述,我最好使用 fortrans 实习生能力(就像在秒表中发生的那样)来完成这项工作,而不是扩展或手动计算。我发现很难相信日期和时间只能转换为字符,而不能反过来……但还是谢谢你。