标签: tdatetime

现在的功能:永久日历的Tdatetime

我正在尝试编写一个函数Tdatetime(但是当我打开我的程序时,他必须现在显示数据)

下面我有一个功能,TDatetime但我有一个错误:

(((('''DecodeDateTime(data,rok,miesiac,dzien,godzina,minuta,sekunda,milisekunda);''))))

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Spin, Buttons;

type
  TForm1 = class(TForm)
    edRok: TSpinEdit;
    edMiesiac: TSpinEdit;
    edDzien: TSpinEdit;
    lbRok: TLabel;
    lbMiesiac: TLabel;
    lbDzien: TLabel;
    lbDT: TLabel;
    btnZamknij: TBitBtn;
    procedure edRokChange(Sender: TObject);
    procedure edDzienChange(Sender: TObject);
    procedure DecodeDate(Date: TDateTime);
    function DT(Dzien, Miesiac: Byte; Rok: Integer): Byte;
    function GetDzienText(Dt: Byte): String;
    function Now: TDateTime;



  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1; …
Run Code Online (Sandbox Code Playgroud)

delphi tdatetime

2
推荐指数
1
解决办法
999
查看次数

在Delphi 2010中编码时间问题

当我们使用EncodeTime函数EncodeTime(wHour,wMinute,wSecond,wMilliseconds)时,它不会将millisec值赋给Result.

我们在下面用它来编码日期和时间

Result := EncodeDate(wYear, wMonth, wDay) +
  EncodeTime(wHour, wMinute, wSecond, wMilliseconds);
Run Code Online (Sandbox Code Playgroud)

我们要解析为DateTime的String具有值,Apr 10 2008 7:21:31:460PM但在编码之后我们得到输出为10/04/2008 07:21:31.

结果仅包含HH:MM:SS值而不包含毫秒值.

如果有格式化值并将其与millisec一起存储在变量中,请告诉我们. *******************我正在尝试的功能*************

function DateTimeParser(theString :string):TDateTime;
var wYear,wMonth,wDay,wHour, wMinute, wSecond,wMilliseconds : Word  ;
Date,Month,Med :String;
Time : TDateTime;
testtime,testtime1 : TSystemTime;
var  myDateTime : TDateTime;
begin
 Month := Copy(theString,1,3) ;
 if Month ='Jan' then wMonth := 01 …
Run Code Online (Sandbox Code Playgroud)

delphi dbexpress tdatetime delphi-2010

2
推荐指数
1
解决办法
1993
查看次数

计算c ++中的操作之间的时间长度

该程序是数据库和应用程序之间的中间件.对于每个数据库访问,我大多数以毫秒为单位计算时间长度.下面的示例是使用Builder库中的TDateTime.我必须尽可能只使用标准的c ++库.

AnsiString TimeInMilliseconds(TDateTime t) {
      Word Hour, Min, Sec, MSec;
      DecodeTime(t, Hour, Min, Sec, MSec);
      long ms = MSec + Sec * 1000 + Min * 1000 * 60 + Hour * 1000 * 60 * 60;
      return IntToStr(ms);
  }
Run Code Online (Sandbox Code Playgroud)
  // computing times
   TDateTime SelectStart = Now();
   sql_manipulation_statement();
   TDateTime SelectEnd = Now();
Run Code Online (Sandbox Code Playgroud)

c++ time tdatetime

2
推荐指数
1
解决办法
8480
查看次数

Delphi TDateTime变量不会在Delphi 2010中初始化

我在Delphi 2010中创建了一个简单的表单,在我输入的按钮的代码中只有一个按钮:

procedure TForm1.Button1Click(Sender: TObject);
var
     myDateTime:TDateTime;
begin
     myDateTime:=now; // shows as 12/30/99 in debugger
end;
Run Code Online (Sandbox Code Playgroud)

当我在Delphi XE2中运行这个完全相同的代码时,我得到myDateTime值的当前日期/时间.

我想我必须在Delphi 2010项目环境中设置错误,但不能想到它可能是什么.

任何帮助将非常感激.

谢谢!

发现的问题,编译器设置是将代码生成优化设置为true,并且该值显然表示为TDateTime的默认值.当我将优化设置更改为false时,我可以看到该值.

delphi tdatetime delphi-2010

2
推荐指数
1
解决办法
484
查看次数

如何检查TDateTime内容是否有效

有没有办法检查Delphi TDateTime变量是否具有有效内容而不捕获转换上的异常?

我编写了一个应用程序,必须解析数百个包含TDateTime字段的原始Delphi记录的大文件.偶尔我会得到一条记录,其内容的TDateTime值如2.0927117954e + 262,它Floating point invalid Operation在传递给转换例程时会产生异常.我知道我可以简单地捕获异常,但这在调试时会非常麻烦,因为调试器会一直停止,我想在其他错误的情况下保持启用状态.

delphi validation datetime vcl tdatetime

2
推荐指数
2
解决办法
1708
查看次数

将 TValue 转换为 TDateTime

如何在 TDateTime 中转换 TValue?

我看到有 AsInteger、AsDouble 等方法,但 TDateTime 没有。

var
  c : TRttiContext;
  t : TRttiType;
  f : TRttiField;
  fieldValue : TValue;
  fieldDateValue : TDateTime;
begin
  c := TRttiContext.Create;
    t := c.GetType(Self.ClassType);
    for f in t.GetFields do begin
      fieldValue := field.GetValue(Self);
      //convert the TValue in TDateTime
    end;
end;
Run Code Online (Sandbox Code Playgroud)

delphi reflection tdatetime tvalue

2
推荐指数
1
解决办法
1040
查看次数

Delphi如何将TDateTime计算为Float值?

我是Delphi编程新手.虽然经历了Data TypesDelphi我发现TDateTime.

在我的测试应用程序中使用它时,我发现TDateTimeObject提供了一个Float\Double值.

我感到有点好奇TDateTime它是如何计算的Date Time,以Double价值.

下面是我使用的示例代码:

var
  LDateTime: TDateTime;
  LFloat: Double;
begin
   LDateTime := now;// current DateTime
   LFloat:= LDateTime; // provide me a float value   
end;
Run Code Online (Sandbox Code Playgroud)

是否使用任何公式Date and Time Value从Windows 计算?

任何人都可以建议/提供有关工作的更多信息TDateTime吗?

提前致谢.

delphi tdatetime

2
推荐指数
1
解决办法
9418
查看次数

Delphi:将 TDate 转换为其他格式

var MyDate:TDate; 
   MyDate:=Date;
Run Code Online (Sandbox Code Playgroud)

如何将本地 myDate 转换为我的格式:31/12/2011?

RecodeDate?

谢谢!!!

delphi time date tdatetime

1
推荐指数
1
解决办法
2491
查看次数

如何在 C++ 中将 Pascal TDateTime(double) 时间转换为 Unix 纪元

我需要使用 C++ 将一个双精度值的 Pascal TDateTime 对象转换为 Unix 纪元。

提出了一个可能的解决方案(https://forextester.com/forum/viewtopic.php?f=8&t=1000):

unsigned int UnixStartDate = 25569;

unsigned int DateTimeToUnix(double ConvDate)
{
  return((unsigned int)((ConvDate - UnixStartDate) * 86400.0));
}
Run Code Online (Sandbox Code Playgroud)

但是,此转换代码会产生错误,例如:

TDateTime 时间值 = 37838.001388888886 (05.08.2003 02:00)

转换为 Unix 纪元 1060041719 (05.08.2003 00:01:59) 这显然是不正确的。

如何准确地转换此 TDateTime 值?

c++ delphi tdatetime

1
推荐指数
1
解决办法
192
查看次数

Delphi - 为什么TDate和TDateTime一样?

在查看System.pas时,TDate和TDateTime定义如下:

  TDateTime = type Double;

  TDate = type TDateTime;
  TTime = type TDateTime;
Run Code Online (Sandbox Code Playgroud)

显然TDate和TDateTime是一样的.

我只是努力与TDate和TDateTime合作,因为我预计TDate只包含日期部分,而不是时间部分.

现在我想知道:这背后的意义是什么?当我将变量声明为TDate时,它应该包含一个日期,而不是一个数据和一个时间值.

delphi tdatetime

0
推荐指数
1
解决办法
3920
查看次数

TTimePicker 在更改时添加 1899/12/30 日期

我正忙着用 Delphi 11.3 编写一个与时间兼容的程序。具体来说,是开始时间和结束时间,并计算两者之间花费的时间,以及其中一个是否大于另一个。

MinutesBetween()尽管使用了or ,事情还是变得一团糟MinuteSpan()。我的开始时间可能是08:00我的结束时间09:30。如果我使用if start < end,我会得到 False 但它是 True 。计算所花费的时间相当于100多年。像这样的奇怪的事情。

作为测试,我编写了一个小程序,代码如下:

mmo1.Lines.Add(FormatDateTime('yyyy/mm/dd hh:nn:ss.zzz',tmpckr1.Time)+'   '
+FormatDateTime('yyyy/mm/dd hh:nn:ss.zzz',tmpckr2.Time)+'   '
+IntToStr(MinutesBetween(tmpckr1.Time,tmpckr2.Time))+'   '
+FloatToStr(MinuteSpan(tmpckr1.Time,tmpckr2.Time)));
Run Code Online (Sandbox Code Playgroud)

这是在一个TTimer. 输出如预期:

mmo1.Lines.Add(FormatDateTime('yyyy/mm/dd hh:nn:ss.zzz',tmpckr1.Time)+'   '
+FormatDateTime('yyyy/mm/dd hh:nn:ss.zzz',tmpckr2.Time)+'   '
+IntToStr(MinutesBetween(tmpckr1.Time,tmpckr2.Time))+'   '
+FloatToStr(MinuteSpan(tmpckr1.Time,tmpckr2.Time)));
Run Code Online (Sandbox Code Playgroud)

我将单击tmpckr1,然后在底部打勾。请注意,我当时没有更改任何内容,这就是结果。

2023/09/18 20:46:29.571   2023/09/18 20:46:29.571   0   0
Run Code Online (Sandbox Code Playgroud)

我重复一遍,这次是tmpckr2

1899/12/30 20:46:29.571   2023/09/18 20:46:29.571   65069280   65069280
Run Code Online (Sandbox Code Playgroud)

有没有办法防止这种情况发生,或者我必须使用EncodeDate()、 、做一些魔法EncodeTime()ReplaceDate()以便s的值ReplaceTime()真正匹配,还是我让事情变得过于复杂?TTimeTTimePicker

如果我只是处理TTime,为什么日期是一个因素?TTimePicker为什么一旦有活动,日期就会改变 …

delphi formatdatetime tdatetime delphi-11-alexandria

0
推荐指数
1
解决办法
117
查看次数