Delphi 要与JuliandateTime()一起使用的当前时间(即Now())的值?
我正在尝试将Now()返回的值转换为double,然后在另一个函数中使用它,即Delphi 要与JuliandateTime()一起使用的当前时间(即Now())的值?,delphi,delphi-2010,vcl,Delphi,Delphi 2010,Vcl,我正在尝试将Now()返回的值转换为double,然后在另一个函数中使用它,即 procedure TForm1.FormCreate(Sender: TObject); begin MyFunction_1(Now); end; procedure MyFunction_1(TheTime : Double); begin MyFunction_2(TheTime); end; procedure MyFunction_1(ModificationDate : Double
procedure TForm1.FormCreate(Sender: TObject);
begin
MyFunction_1(Now);
end;
procedure MyFunction_1(TheTime : Double);
begin
MyFunction_2(TheTime);
end;
procedure MyFunction_1(ModificationDate : Double);
begin
if JulianDateToDateTime(ModificationDate) < 12345 then
...
end;
我很确定这是非常基本的东西,我只是不知道它是什么
需要帮忙吗 您正在反向操作。:-)
JulianDateToDateTime
将Julian日期作为参数并返回TDateTime。它不把TDateTime作为一个参数;这就是你得到错误结果的原因。我想你是想走另一条路(DateTimeToJulianDate
)
从Delphi文档中:
调用JulianDateToDateTime将Julian日期转换为相应的TDateTime值
调用DateTimeToJulianDate将TDateTime值转换为相应的Julian日期
下面是一个显示差异的快速示例:
uses DateUtils;
procedure TForm2.FormShow(Sender: TObject);
var
TodaysDate: TDateTime;
JDate: TDateTime;
begin
TodaysDate := Date;
JDate := DateTimeToJulianDate(TodaysDate);
ShowMessage('Today: ' + FloatToStr(TodaysDate) + #13 +
'JDate: ' + FloatToStr(JDate) );
end;
以下是输出:
请注意,再添加一个TDateTime
类型的变量并尝试使用JulianDateToDateTime
会引发范围异常:
BadDate: TDateTime;
...
BadDate := JulianDateToDateTime(TodaysDate); // raises exception
返回一个TDateTime
时间戳,该时间戳是在单位系统中定义的Double
:
TDateTime = type Double;
如果要将其转换为儒略日期,则需要将其输入到:
使用JulianDateToDateTime
您应该提供一个Julian日期并将其转换为DateTime
值。我想您应该使用DateTimeToJulianDate
。
TDateTime = type Double;
DateTimeToJulianDate(Now)