delphi中的時間操作技術(1) (轉)
在編寫應用時,我們需要經常與時間和日期打交道,因此經常需要一些對時間的控制技術,在中,提供了一整套對日期和時間的操作,在此,我將詳細介紹一下在Delphi中的時間操作技術,希望能對大家有所幫助。:namespace prefix = o ns = "urn:schemas--com::office" />
Delphi中的用於表示時間的型別:
首先,看一看在delphi中用於描述時間的幾種資料結構,對時間的操作,其實就是對這些結構的操作。
TDateTime型別:
Delphi中最常用的表示日期時間的資料型別TDateTime型別,和普通的整形數一樣,你可以給日期定義一個日期型變數以便在程式中進行操作。TdateTime型別實質上是一個Double型的數,在Delphi中是這樣定義TdateTime型別: type TDateTime = type Double ,具體的演算法是用Double數的整數部分表示日期,以1989年12月30日為基準點,以天為單位進行加減,如數字1表示1900年1月1日,數字-1表示1989年12月29日。而小數部分則用來表示時間,其值為欲表示的時間與一整天總時間的比值,如早上6點就是6/24=0.25,而早上6:15就是(6*60+15)/(24*60)=0.2604166666666666666666666666667,下面,給出幾個例子說明TDateTime型別與Double型別的互動關係
0 12/30/1899 00:00:00
2.75 1/1/1900 18:00:00
-1.25 12/29/1899 6:00:00
35065 1/1/1996 00:00:00
相信大家一定能自己理解TdateTime與Double之間的轉換方法,因此,從根本上對TDateTime的操作與Double完全一樣。
TTimeStamp 型別:
這是一個用來描述日期與時間的一個結構型別,在Delphi中是這樣定義的:
type
TTimeStamp = record
Time: Integer; {從午夜0點開始到指定時間的毫秒數 }
Date: Integer; {以本日為基準到指點日期的天數}
end;
和TDateTime相比,可更直觀表示高精度的時間,一般用於毫秒級的運算以及用於表示較長的時間。
PsystemTime 型別:
一個用於Win中對時間操作的指標型結構。他的定義為:
type
PSystemTime = ^TSystemTime;
TSystemTime = record
wYear: ;
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就是-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;
能提高您操作時間技術方面的能力,同時也為您在閱讀相關的聯機幫助時提供一些方便。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10748419/viewspace-1007905/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- delphi中的時間操作技術(2) (轉)
- Delphi中停靠技術的實現 (轉)
- SVG中的動畫技術(1) (轉)SVG動畫
- 在Delphi中操作快捷方式 (轉)
- 一種新穎的技術:Delphi for DOS!!! (轉)
- 【Java 核心技術 1】時間 Date、LocalDate 練習JavaLDA
- [Java 核心技術 1] 時間 Date、LocalDate 練習JavaLDA
- mysql時間操作(時間差和時間戳和時間字串的互轉)MySql時間戳字串
- delphi中關於字串的操作字串
- 用Delphi獲取當前系統時間 (轉)
- 在DELPHI2.0/3.0中直接操作埠 (轉)
- Python中基礎的時間操作Python
- sql server中對時間日期的操作SQLServer
- python中的時間轉換,秒級時間戳轉string,string轉時間Python時間戳
- 在Delphi中編寫控制元件的基本方法(1) (轉)控制元件
- delphi的物件導向之路1 (轉)物件
- Delphi中的類和物件 (轉)物件
- 股票技術分析的操作原則(轉載)
- Delphi 技術的優缺點與應用
- VXD技術漫談(1) (轉)
- 追蹤mysql操作記錄時間1.MySql
- SVG中的動畫技術(2) (轉)SVG動畫
- SVG中的動畫技術(3) (轉)SVG動畫
- 技術乾貨| MongoDB時間序列集合MongoDB
- 反轉技術面試!還有這樣的操作?面試
- 也談.Net中間語言——破解Delphi2CS行數和時間限制
- Perl中本地時間和UNIX時間戳間相互轉換時間戳
- 病毒的編制關鍵技術(1) (轉)
- 時間相關的操作
- 【併發技術02】傳統執行緒技術中的定時器技術執行緒定時器
- delphi:string,PChar,Array of Char 之間的轉換
- JDBC介面技術介紹1 (轉)JDBC
- 掌握時間與空間:深入探討Golang中的時間戳與時區轉換Golang時間戳
- java時間操作Java
- 程式設計技術點滴一(Delphi)程式設計
- Oracle表空間時間點恢復技術TSPITROracle
- 報名中 | Serverless 技術進階研讀班,碎片時間提升技術新方式Server
- 技術如何轉產品01——1+1>2?