delphi程序里日期时间怎么控制

author author     2023-05-05     517

关键词:

日期时间类型:TDateTime;本质是double,双精度类型;
整数部分代表日期,小数部分代表时间
数值为0时,代表 12/30/1899 12:00 am

因为是double类型,日期调整可以直接以数值加减操作,
具体控制有很多函数,都包含在 Unit:DateUtils中
函数列表:

CompareDate function
CompareDateTime function
CompareTime function
DateOf function
DateTimeToJulianDate function
DateTimeToModifiedJulianDate function
DateTimeToUnix function
Day of week constants
DayOf function
DayOfTheMonth function
DayOfTheWeek function
DayOfTheYear function
DaysBetween function
DaysInAMonth function
DaysInAYear function
DaysInMonth function
DaysInYear function
DaySpan function
TDateTime values.
DecodeDateDay procedure
DecodeDateMonthWeek procedure
DecodeDateTime procedure
DecodeDateWeek procedure
DecodeDayOfWeekInMonth procedure
EncodeDateDay function
EncodeDateMonthWeek function。。。
参考技术A 请说明具体需要,要拿时间来做什么,还是说只是为了显示下时间,如果只是为了标签上显示下时间的话,lable1.caption:=now; 参考技术B 问题太抽象了,能否详细点? 参考技术C TTimeStamp 类型:
这是一个用来描述日期与时间的一个结构类型,在Delphi中是这样定义的:
type
TTimeStamp = record
Time: Integer; 从午夜0点开始到指定时间的毫秒数
Date: Integer; 以本日为基准到指点日期的天数
end;

和TDateTime相比,可更直观表示高精度的时间,一般用于毫秒级的运算以及用于表示较长的时间。
PsystemTime 类型:
一个用于WinApi中对时间操作的指针型结构。他的定义为:
type
PSystemTime = ^TSystemTime;
TSystemTime = record
wYear: Word;
wMonth: Word;
wDayOfWeek: Word;
wDay: Word;
wHour: Word;
wMinute: Word;
wSecond: Word;
wMilliseconds: Word;
end;

这个结构多用于调用WinApi操作时使用。
在了解了各种时间类型的本质后,相信大家都有一套操作这些类型的时间的想法,不过在Delphi中还提供了一整套用于操作时间的过程函数,这些过程和函数都定义在SysUnit这个单元中,现在就向大家介绍Delphi中相关函数:
用于时间操作的函数
Date函数:
定义:Date: TDateTime;
作用:返回当前的日期
范例:
CurrentDate := Date;

DayOfWeek函数:
定义:function DayOfWeek(Date: TDateTime): Integer;
作用:得到指定日期的星期值,返回1~7,代表周日到周六。
IncMouth函数:
定义:function IncMonth(const Date: TDateTime; NumberOfMonths: Integer): TDateTime;
作用:求给定的日期Data在NumberOfMonths个月后的日期。
范例:
Date1 := IncMonth(date,10);

如果今天是2002-5-3,则Date1就是2003-3-3
IsLeapYear函数:
定义:function IsLeapYear(Year: Word): Boolean;
作用:判断指定的年份是否是闰年;
范例:
if isLeapYear(2000) then ShowMessage(‘该年是闰年');

Now函数:
定义:function Now: TDateTime;
作用:用于取得当前的日期时间
范例:
CurrentDateTime := Now;

ReplaceDate 过程
定义:procedure ReplaceDate(var DateTime: TDateTime; const NewDate: TDateTime);
作用:使用参数Newdate日期部分替换参数DateTime的日期部分,但不改变时间部分。
ReplaceDate 过程
定义:procedure ReplaceTime(var DateTime: TDateTime; const NewTime: TDateTime);
作用:使用参数Newdate时间部分替换参数DateTime的时间部分,但不改变日期部分。
如果上述这两个过程一起用,就相当于赋值了。
Time函数:
定义:function Time: TDateTime;
作用:返回当前的时间
范例:

CurrentTime := Time;

各种时间类型之间的转换函数
DateTimeToFileDate函数:
定义:DateTimeToFileDate(DateTime: TDateTime): Integer;
作用:将一个TDateTime类型的时间转化为Dos环境中的时间,Dos环境下对时间的访问方法和VCL中的TdateTime类型不一样,在进行文件操作时,为了保持时间的一致性,需要使用DateTimeToFileDate函数进行转化, 返回的Integer的值就是Dos下的用于描述时间的值。
DateTimeToSystemTime 过程:
定义:procedure DateTimeToSystemTime(DateTime: TDateTime; var SystemTime: TSystemTime);
作用:将一个TDateTime类型的时间转换为Win API函数所使用的TSystemTime类型,在使用WinApi函数操纵时间时用到。
SystemTimeToDateTime 函数:
定义:function SystemTimeToDateTime(const SystemTime: TSystemTime): TDateTime;
作用:将一个在WinApi函数中得到的TSysTemTime类型的数转换为TDateTime类型。
DateTimeToTimeStamp 函数:
TimeStampToDateTime 函数:
定义:DateTimeToTimeStamp(DateTime: TDateTime): TTimeStamp;
function TimeStampToDateTime(const TimeStamp: TTimeStamp): TDateTime;
作用:用于在TDataTime类型与TTimeStamp之间进行互相转换。TDataTime 用一个double描绘一个时间,而TTimeStamp则是采用两个整形数分别描述时间。两种类型的区别可参考文章开始处的数据类型描述部分。
EncodeDate 函数:
定义:function EncodeDate(Year, Month, Day: Word): TDateTime;
作用: 输入年(year),月(month),日(day)的值,将该日期返回为TDateTime类型,年的范围为1-9999,月份的范围为1-12,日期的范围视当月的情况而定,如果输入的值超出范围,则将产生一个EConvertError错误。
DecodeDate 过程:
定义:procedure DecodeDate(Date: TDateTime; var Year, Month, Day: Word);
作用:输入一个TDateTime类型的日期,将其转为年(Year),月(Month),日(Day)的值。如果输入值为0或小于0,则年月日均为0,
EncodeTime 函数:
定义:EncodeTime(Hour, Min, Sec, MSec: Word): TDateTime;
作用:输入小时(Hour),分(min),秒(Sec),微秒(MSec)的值,返回一个TDateTime类型的时间,该值为一个介于0至1之间的小数。Hour的取值范围为0-23,Min的取值范围为0-59,Sec的取值范围为0-59,MSec的取值范围为0-999,如果输入值超出范围,则产生一个EConvertError 错误。
DecodeTime 过程:
定义:procedure DecodeTime(Time: TDateTime; var Hour, Min, Sec, MSec: Word);
作用:输入一个时间,将其转换为小时(Hour),分(min),秒(Sec),微秒(MSec)的值。
TDateTime类型与字符串型转换函数:
DateTimeToStr 函数:
DateToStr 函数
TimeToStr函数
定义:function DateTimeToStr(DateTime: TDateTime): string;
function TimeToStr(Time: TDateTime): string;
function TimeToStr(Time: TDateTime): string;
作用:将一个TDateTime类型的数转换成字符串,DateTimeToStr转换日期和时间,DateToStr只转换日期,TimeToStr只转换时间。转换后的输出效果为YYYY-M-D H:M:S
StrToDateTime函数
StrToDate函数
StrToTime函数
定义:function StrToDateTime(const S: string): TDateTime;
function StrToDate(const S: string): TDateTime;
function StrToTime(const S: string): TDateTime;
作用:将带有日期时间格式的字符串转化成TDateTime,其中S必须是一个有效的字符串,如
YY-MM-DD HH:MM:SS格式,否则就会触发EConvertError事件,提示错误信息。
时间部分的字符串必须是由2~3个的数值字串构成,并且采用在Windows区域设置中设置的分隔字符进行分隔,其格式要求符合在Windows区域设定中的设定,其中HH,MM(小时,分钟)必须添加,SS(秒)可选,也可以在后面加入 Am和Pm区分上下午,这时候系统将认为采用12小时表示法,否则认为采用24小时表示法。

delphi怎么获得某文件夹下最新建立的文件

我想做一个监控的程序,在某文件夹下,只要一生成一个文件,我就要得到这个文件的名字,也就是得到建立时间最近的那个文件,要怎么实现了,各位帮帮忙。也可以程序启动时,读取文件夹下全部文件,将文件名放入Stringlis... 查看详情

delphi程序是否为控制台编译选项

http://www.birdol.com/article/tag/delphi 编译指令写在哪?:编译指令可以写在代码页的任何地方,不过在代码的不同区域有时也会不同;譬如:{$APPTYPEGUI}和{$APPTYPECONSOLE}就只能写在工程文件里才有效.{$APPTYPEGUI}和{$APPTYPECONSOLE}分别表示窗口... 查看详情

C++ 将日期时间添加到控制台输出

...的信息,因此希望有人可以帮助我。我有一个控制台应用程序,它启动并挂接另一个进程,默认情况下,新进程输出显示在第一个控制台应用程序中。我想做的是为所有输出添加一个日期时间值,问题是我不控制子进程(第3方... 查看详情

delphi控制台程序输出中文乱码,如何解决?

...你好'),但是控制台显示的时候是乱码,怎么解决这与Delphi无关。按如下步骤操作,应该可以解决: 一、在“开始”->“运行”里输入“CMD“,回车或者点击“确定”,打开命令行窗口。应该显示:   Microsoft&... 查看详情

怎么样才能让word文档里的时间自动更新呢?

...才能让标签里的时间自动更新呢?拜谢了咯。。插入当前日期和时间单击要插入日期或时间的位置。单击“插入”菜单中的“日期和时间”。如果要对插入的日期或时间应用其他语言的格式,请单击“语言”框中的语言。“语言... 查看详情

delphi获取当前日期,包括年份月份星期时间。

...和工程最好了,531331615@qq.com发送的果断加10分哦1、打开Delphi7集成开发环境,在Diaglog面板,向默认工程的Form1窗体放一个Opendiag1控件。2、在默认工程的Form1窗体,再放一个Edit1控件,两个Button控件,分别设置其Captain属性为:打开... 查看详情

sql里日期怎么加减

参考技术ADATEDIFF:返回跨两个指定日期的日期边界数和时间边界数,语法:DATEDIFF(datepart,startdate,enddate)用enddate减去startdate注:datepart指定应在日期的哪一部分计算差额的参数,其日期相减时,只关注边界值,例SELECTDATEDIFF(YEAR,'2008-12... 查看详情

javascript测验——对日期和时间精确控制应用程序推荐使用的库---第14关

Moment.js中文网 timezone-js-npmJavaScript日期库Datejs   查看详情

不修改系统日期和时间格式,解决delphi报错提示'****-**-**'isnotavaliddateandtime(代码片段)

假如操作系统的日期格式不是yyyy-MM-dd格式,而是用strtodate(‘2014-10-01‘))来转换的话,程序会提示爆粗 ‘****-**-**‘isnotavaliddateandtime解决方法:只需要在程序启动时添加以下代码,就可以不用修改系统日期和时间格式,就能... 查看详情

Delphi 组件安装实用程序控制台应用程序

】Delphi组件安装实用程序控制台应用程序【英文标题】:Delphicomponentsinstallutilityconsoleapplication【发布时间】:2012-06-2614:49:58【问题描述】:好吧,我很难过。我正在为SmartInstallMaker编写一个安装支持插件,它将为我安装一些组件-... 查看详情

sql里怎么把日期截取为月份

参考技术A当我们处理日期时,最难的任务恐怕是确保所插入的日期的格式,与数据库中日期列的格式相匹配。只要您的数据包含的只是日期部分,运行查询就不会出问题。但是,如果涉及时间部分,情况就有点复杂了。在讨论... 查看详情

win7控制面板里的java怎么删除

程序和功能里没有,我这个是装电脑时候自带的,我以前没有安装过java,电脑是新买的,求大神,我是64位的程序与功能里没有“java32位”打开【控制面板】--【程序】--【卸载程序】分别卸载:Java(TM)6Update43、Java(TM)SEDevelo... 查看详情

sql里日期怎么加减

...09-9-17:18:20')附:DATEDIFF函数使用说明:返回跨两个指定日期的日期和时间边界数。语法DATEDIFF(datepart,startdate,enddate)参数datepart是规定了应在日期的哪一部分计算差额的参数。下表列出了Microsoft�0�3SQLServer�6�4... 查看详情

excel表格输入时间是斜杠的格式怎么转换成横杠的格式

1、打开excel表格在单元格内输入日期,具体显示格式如下图,选中单元格。2、点击鼠标右键,在弹出的选项中选择“设置单元格格式”。3、在弹出的对话框中选择“自定义”,并手动更改类型为:yyyy-m-d。4、点击确定,即可将... 查看详情

delphi程序不受windows日期格式的影响

如果WINDOWS系统的短日期格式为“yyyy/m/d”,执行下面的代码会报错:2013-01-2900:00:00不是合法的日期在主程序打开时更改windows日期格式 //更改windows日期格式SetLocaleInfo(LOCALE_SYSTEM_DEFAULT,LOCALE_SSHORTDATE,‘yyyy-MM-dd‘);Appl... 查看详情

日期/时间控制 asp.net

...】:2014-03-2415:59:29【问题描述】:我有一个网络表单应用程序,它计算两个日期之间的时间差,然后以天数、总小时数、总分钟数的格式返回。我的标记代码如下:<asp:LabelID="Label20"runat="server"CssClass="label">ResolvedDate</asp:Labe... 查看详情

java里怎么自定义一个日期!

...ck e.printStackTrace(); 哪里错了?我的目的是想得到一个日期类型的!2楼的得到的是String的!在旧版本的jdk中,Java的日期/时间类的定义并不一致,在java.util和java.sql的包中都有日期类,此外用于格式化和解析的类在java.text.Simple... 查看详情

delphi设置时间格式

//设置WINDOWS系统的短日期的格式SetLocaleInfo(LOCALE_SYSTEM_DEFAULT,LOCALE_SSHORTDATE,‘yyyy-MM-dd‘);Application.UpdateFormatSettings:=False;//设定程序本身所使用的日期时间格式LongDateFormat:=‘yyyy-MM-dd‘;ShortDateFormat:=‘yyyy-MM 查看详情