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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了delphi程序里日期时间怎么控制相关的知识,希望对你有一定的参考价值。

日期时间类型: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小时表示法。

怎么用C++做日期相减(要求精确到分钟)

各路C++编程高手!
怎么用C++做日期相减(要求精确到分钟)

    使用clock函数获得程序开始和结束的时间,相减就能得到程序运行的时间。
    clock()是C/C++中的计时函数,而与其相关的数据类型是clock_t。在MSDN中,查得对clock函数定义如下:
    clock_t clock(void) ;
    简单而言,就是该程序从启动到函数调用占用CPU的时间。这个函数返回从“开启这个程序进程”到“程序中调用clock()函数”时之间的CPU时钟计时单元(clock tick)数,在MSDN中称之为挂钟时间(wal-clock);若挂钟时间不可取,则返回-1。其中clock_t是用来保存时间的数据类型。

    例程:

    #include<iostream>
    #include<ctime>
    using namespace std;
     
    int main()

        clock_t start,finish;
        start=clock();
         
        cout << "HW .... " << endl;
     
        finish=clock();
     
        cout << finish-start   << "/" << CLOCKS_PER_SEC  << " (s) "<< endl;
         
        return 0;
参考技术A #include<iostream>
#include<ctime>

using std::cin;
using std::cout;
using std::endl;

int main()

time_t t1;
time_t t2;
time(&t1);
system("pause");
time(&t2);
cout<<"The time it takes is"<<t2-t1<<endl;

//这样就可以计算值中间语句期间耗费的时间,单位是秒,你如果需要分钟除以60就是了,如果还不明白来问我吧,我经常在线
参考技术B 用 ctime(time.h) 里的函数 difftime

原型:
double difftime ( time_t time2, time_t time1 );
返回 时间差, 单位 秒。本回答被提问者采纳

以上是关于delphi程序里日期时间怎么控制的主要内容,如果未能解决你的问题,请参考以下文章

delphi日期时间比较大小

delphi中adodataset问题

DELPHI 中日期时间运算问题! 高分.

关于在delphi中时间日期的转换问题,高手进

请问在C语言里怎么获取当前时间和日期(精确到毫秒)?

在delphi里面怎么计算比如说从现在开始5天后的日期是啥?