爱招飞帮助手册 爱招飞帮助手册
首页
  • 学习手册

    • 基本入门
    • 功能介绍
    • 控件说明
    • 功能用法
    • 专用模板
    • 开发流程
    • 函数程序
  • 学习手册

    • 基本入门
    • 功能介绍
    • 控件说明
    • 系统工具
    • 系统管理
    • 数据库工具
    • 专用模板
    • 外部功能
    • 开发流程
    • 函数代码
  • 开发手册
  • 学习手册

    • 基本入门
    • 功能介绍
    • 控件说明
    • 功能用法
    • 专用模板
    • 开发流程
    • 函数程序
  • 开发手册
  • 学习手册

    • 基本入门
    • 功能介绍
    • 控件说明
    • 功能用法
    • 专用模板
    • 开发流程
    • 函数程序
  • 开发手册
  • 学习手册

    • 安装配置
    • 快速上手
    • 界面介绍
    • 功能介绍
    • 报表设计
  • 学习手册

    • 安装配置
    • 快速上手
    • 界面介绍
    • 功能介绍
    • RestAPI
    • WebSocket
  • 学习手册

    • 安装配置
    • 快速上手
    • 程序架构
    • 界面介绍
    • 功能介绍
  • 学习手册

    • 安装配置
    • 快速上手
    • 界面介绍
    • 功能介绍
  • 学习手册

    • 安装配置
    • 快速上手
    • 界面介绍
    • 功能介绍
    • 预设资料
    • RestAPI说明
    • WebSocket说明
    • MQTT说明
    • Python说明
    • 自定程序
    • 运行卫士
    • 自动化作业
    • 函数程序
    • 控件使用
  • 开发手册
  • FastERP
  • FastWeb
  • Smart
  • PinToo
  • Flying
  • TARS
  • 通用功能

    • Report
    • Script
    • Echarts
    • Chart
    • DB Install
    • HiDesk
    • HiNAT
    • FastBPM
    • ReportBuilder
首页
  • 学习手册

    • 基本入门
    • 功能介绍
    • 控件说明
    • 功能用法
    • 专用模板
    • 开发流程
    • 函数程序
  • 学习手册

    • 基本入门
    • 功能介绍
    • 控件说明
    • 系统工具
    • 系统管理
    • 数据库工具
    • 专用模板
    • 外部功能
    • 开发流程
    • 函数代码
  • 开发手册
  • 学习手册

    • 基本入门
    • 功能介绍
    • 控件说明
    • 功能用法
    • 专用模板
    • 开发流程
    • 函数程序
  • 开发手册
  • 学习手册

    • 基本入门
    • 功能介绍
    • 控件说明
    • 功能用法
    • 专用模板
    • 开发流程
    • 函数程序
  • 开发手册
  • 学习手册

    • 安装配置
    • 快速上手
    • 界面介绍
    • 功能介绍
    • 报表设计
  • 学习手册

    • 安装配置
    • 快速上手
    • 界面介绍
    • 功能介绍
    • RestAPI
    • WebSocket
  • 学习手册

    • 安装配置
    • 快速上手
    • 程序架构
    • 界面介绍
    • 功能介绍
  • 学习手册

    • 安装配置
    • 快速上手
    • 界面介绍
    • 功能介绍
  • 学习手册

    • 安装配置
    • 快速上手
    • 界面介绍
    • 功能介绍
    • 预设资料
    • RestAPI说明
    • WebSocket说明
    • MQTT说明
    • Python说明
    • 自定程序
    • 运行卫士
    • 自动化作业
    • 函数程序
    • 控件使用
  • 开发手册
  • FastERP
  • FastWeb
  • Smart
  • PinToo
  • Flying
  • TARS
  • 通用功能

    • Report
    • Script
    • Echarts
    • Chart
    • DB Install
    • HiDesk
    • HiNAT
    • FastBPM
    • ReportBuilder
  • Smart帮助主页
  • 学习手册

    • 基本入门

    • 功能介绍

    • 控件说明

    • 功能用法

    • 专用模板

    • 开发流程

    • 函数程序

      • 系统函数
        • 1. 字符串处理函数
          • 1.1. CompareStr
          • 1.2. CompareText
          • 1.3. Copy
          • 1.4. LeftStr
          • 1.5. Length
          • 1.6. LowerCase
          • 1.7. Pos
          • 1.8. PosEx
          • 1.9. QuotedStr
          • 1.10. RightStr
          • 1.11. SameText
          • 1.12. StrECopy
          • 1.13. StrEnd
          • 1.14. StringOfChar
          • 1.15. StrLCat
          • 1.16. StrLComp
          • 1.17. StrLen
          • 1.18. StrLiComp
          • 1.19. StrLower
          • 1.20. StrMove
          • 1.21. StrPCopy
          • 1.22. StrPLCopy
          • 1.23. StrPos
          • 1.24. StrRScan
          • 1.25. StrScan
          • 1.26. Trim
          • 1.27. TrimLeft
          • 1.28. TrimRight
          • 1.29. UpperCase
        • 2. 科学计算函数
          • 2.1. Abs
          • 2.2. Exp
          • 2.3. Int
          • 2.4. IsZero
          • 2.5. Ln
          • 2.6. Pi
          • 2.7. Power
          • 2.8. Round
          • 2.9. SameValue
          • 2.10. Sqr
          • 2.11. Sqrt
          • 2.12. Trunc
          • 2.13. VarComplexAbs
          • 2.14. VarComplexAbsSqr
          • 2.15. VarComplexAngle
        • 3. 序数函数
          • 3.1. Odd
          • 3.2. Ord
          • 3.3. Pred
          • 3.4. Succ
        • 4. 三角函数
          • 4.1. ArcCos
          • 4.2. ArcSin
          • 4.3. ArcTan
          • 4.4. ArcTan2
          • 4.5. Cos
          • 4.6. Sin
        • 5. 统计函数
          • 5.1. MaxIntValue
          • 5.2. MinIntValue
          • 5.3. SumInt
        • 6. 金融函数
          • 6.1. DoubleDecliningBalance
          • 6.2. InternalRateOfReturn
          • 6.3. SYDDepreciation
        • 7. 随机数函数
          • 7.1. Random
          • 7.2. RandomFrom
        • 8. 单位换算函数
          • 8.1. CelsiusToFahrenheit
          • 8.2. DateTimeToJulianDate
          • 8.3. DateTimeToModifiedJulianDate
          • 8.4. DateTimeToUnix
          • 8.5. FahrenheitToCelsius
        • 9. 日期函数
          • 9.1. CurrentYear
          • 9.2. Date
          • 9.3. DateOf
          • 9.4. DateTimeToFileDate
          • 9.5. DateTimeToStr
          • 9.6. DateToStr
          • 9.7. DayOf
          • 9.8. DayOfTheMonth
          • 9.9. DayOfTheWeek
          • 9.10. DayOfTheYear
          • 9.11. DayOfWeek
          • 9.12. DaysBetween
          • 9.13. DaysInAMonth
          • 9.14. DaysInAYear
          • 9.15. DaysInMonth
          • 9.16. DaysInYear
          • 9.17. DaysSpan
          • 9.18. DecodeDateFully
          • 9.19. EncodeDate
          • 9.20. EncodeDateDay
          • 9.21. EncodeDateMonthWeek
          • 9.22. EncodeDateTime
          • 9.23. EncodeDateWeek
          • 9.24. EncodeDayOfWeekInMonth
          • 9.25. EncodeTime
          • 9.26. EndOfAMonth
          • 9.27. EndOfAWeek
          • 9.28. EndOfTheDay
          • 9.29. EndOfTheMonth
          • 9.30. EndOfTheWeek
          • 9.31. EndOfTheYear
          • 9.32. FormatDateTime
          • 9.33. GetTime
          • 9.34. HourOfTheDay
          • 9.35. HourOfTheMonth
          • 9.36. HourOfTheWeek
          • 9.37. HourOfTheYear
          • 9.38. HoursBetween
          • 9.39. HourSpan
          • 9.40. IncDay
          • 9.41. IncHour
          • 9.42. IncMilliSecond
          • 9.43. IncMinute
          • 9.44. IncMonth
          • 9.45. IncSecond
          • 9.46. IncWeek
          • 9.47. IncYear
          • 9.48. IsInLepYear
          • 9.49. IsLeapYear
          • 9.50. IsPM
          • 9.51. IsSameDay
          • 9.52. IsToday
          • 9.53. IsValidDate
          • 9.54. IsValidDateDay
          • 9.55. IsValidDateMonthWeek
          • 9.56. IsValidDateTime
          • 9.57. IsValidDateWeek
          • 9.58. IsValidTime
          • 9.59. MilliSecondOf
          • 9.60. MilliSecondOfTheDay
          • 9.61. MilliSecondOfTheHour
          • 9.62. MilliSecondOfTheMinute
          • 9.63. MilliSecondOfTheMonth
          • 9.64. MilliSecondOfTheSecond
          • 9.65. MilliSecondsBetween
          • 9.66. MinuteOf
          • 9.67. MinuteOfTheHour
          • 9.68. MinuteOfTheMonth
          • 9.69. MinuteOfTheWeek
          • 9.70. MinuteOfTheYear
          • 9.71. MinutesBetween
          • 9.72. MinuteSpan
          • 9.73. MonthOf
          • 9.74. MonthOfTheYear
          • 9.75. MonthsBetween
          • 9.76. MonthSpan
          • 9.77. Now
          • 9.78. NthDayOfWeek
          • 9.79. RecodeDate
          • 9.80. RecodeDateTime
          • 9.81. RecodeDay
          • 9.82. RecodeHour
          • 9.83. RecodeMilliSecond
          • 9.84. RecodeMinute
          • 9.85. RecodeSecond
          • 9.86. RecodeTime
          • 9.87. RecodeYear
          • 9.88. SameDate
          • 9.89. SameDateTime
          • 9.90. SameTime
          • 9.91. SecondOf
          • 9.92. SecondOfTheDay
          • 9.93. SecondOfTheHour
          • 9.94. SecondOfTheMinute
          • 9.95. SecondOfTheMonth
          • 9.96. SecondOfTheWeek
          • 9.97. SecondsBetween
          • 9.98. SecondsSpan
          • 9.99. StartOfAWeek
          • 9.100. StartOfAYear
          • 9.101. StartOfTheDay
          • 9.102. StartOfTheMonth
          • 9.103. StartOfTheWeek
          • 9.104. StartOfTheYear
          • 9.105. StrToDate
          • 9.106. StrToDateDef
          • 9.107. StrToDateTime
          • 9.108. StrToDateTimeDef
          • 9.109. StrToTime
          • 9.110. StrToTimeDef
          • 9.111. Time
          • 9.112. TimeOf
          • 9.113. TimeToStr
          • 9.114. Today
          • 9.115. Tomorrow
          • 9.116. TryEncodeDate
          • 9.117. TryEncodeDateDay
          • 9.118. TryEncodeDateMonthWeek
          • 9.119. TryEncodeDateTime
          • 9.120. TryEncodeDateWeek
          • 9.121. TryEncodeDayOfWeekInMonth
          • 9.122. TryEncodeTime
          • 9.123. TryRecodeDateTime
          • 9.124. TryStrToDate
          • 9.125. TryStrToDateTime
          • 9.126. TryStrToTime
          • 9.127. WeekOf
          • 9.128. WeekOfTheMonth
          • 9.129. WeekOfTheYear
          • 9.130. WeeksBetween
          • 9.131. WithinPastHours
          • 9.132. WithinPastMilliSeconds
          • 9.133. WithinPastMinutes
          • 9.134. WithinPastMonths
          • 9.135. WithinPastSeconds
          • 9.136. WithinPastWeeks
          • 9.137. WithinPastYears
          • 9.138. YearOf
          • 9.139. YearsBetween
          • 9.140. YearsSpan
          • 9.141. YesterDay
        • 10. 类型转换函数
          • 10.1. Bounds
          • 10.2. IntToHex
          • 10.3. IntToStr
          • 10.4. Point
          • 10.5. Rect
          • 10.6. StrToBool
          • 10.7. StrToBoolDef
          • 10.8. StrToInt
          • 10.9. StrToIntDef
          • 10.10. TryStrToBool
          • 10.11. TryStrToInt
        • 11. 文件处理函数
          • 11.1. ExcludeTrailingBackslash
          • 11.2. ExcludeTrailingPathDelimiter
          • 11.3. ExpandFileName
          • 11.4. ExpandUNCFileName
          • 11.5. ExtractFileDir
          • 11.6. ExtractFileDrive
          • 11.7. ExtractFileName
          • 11.8. ExtractFileExt
          • 11.9. ExtarctFilePath
          • 11.10. ExtractRelativePath
          • 11.11. FileAge
          • 11.12. FileExists
          • 11.13. FileIsReadOnly
          • 11.14. FileSetReadOnly
          • 11.15. ForceDirectoris
          • 11.16. GetCurrentDir
          • 11.17. InCludeTrailingBackslash
          • 11.18. InCludeTrailingPathDelimiter
          • 11.19. IOResult
          • 11.20. MatchesMask
          • 11.21. ReadIni
          • 11.22. SetCurrentDir
        • 12. 格式化函数
          • 12.1. Format
          • 12.2. FormatBuf
          • 12.3. FormatCurr
          • 12.4. FormatDateTime
          • 12.5. FormatFloat
          • 12.6. StrFmt
          • 12.7. StrLFmt
          • 12.8. WideFormat
          • 12.9. WideFormatBuf
        • 13. 对话框函数
          • 13.1. InputBox
          • 13.2. InputQuery
          • 13.3. LoginDialog
          • 13.4. LoginDialogEx
        • 14. 窗口控制实用程序
          • 14.1. FindControl
          • 14.2. GetComCtlVersion
          • 14.3. GetParentForm
        • 15. 指针相关函数
          • 15.1. FreeAndNil
        • 16. 内存管理函数
          • 16.1. New
      • 系统程序
      • 自定函数
      • 自定程序
  • 开发手册

目录

系统函数

# Smart 系统函数

  该手册内的内容用于编写脚本时作为参考,包含系统中使用的部分函数。

# 1. 字符串处理函数

# 1.1. CompareStr

function CompareStr(const S1,S2:string):Integer;
1
  • 该函数用于比较两个字符串,字符串需区分大小写。
部分 说明
S1 待比较的字符串
S2 待比较的字符串
  • 返回值:如果S1与S2不相同,则函数的返回值不为0;如果S1与S2相同,则返回值为0。

  • 示例:

var
  s1: String;
  s2: String;
  s3: String;
  s4: String;
begin
  s1 := 'Hi,Hello';
  s2 := 'HI,Hello';
  s3 := 'book';
  s4 := 'book';
  if CompareStr(s1,s2) = 0 then
    ShowMessage('相同')
  else
    ShowMessage('不同');
  if CompareStr(s3,s4) = 0 then
    ShowMessage('相同')
  else
    ShowMessage('不同');  
end;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
  • 运行结果

不同 相同

# 1.2. CompareText

  • 该函数通过序数值比较两个字符串,不区分大小写。
部分 说明
S1 待比较的字符串
S2 待比较的字符串
  • 返回值:如果S1与S2不相同,则函数的返回值不为0;如果S1与S2相同,则返回值为0。

  • 示例:

var
  s1: String;
  s2: String;
  s3: String;
  s4: String;
begin
  s1 := 'Hi,Hello';
  s2 := 'HI,Hello';
  s3 := 'book';
  s4 := 'book';
  if CompareText(s1,s2) = 0 then
    ShowMessage('相同')
  else
    ShowMessage('不同');
  if CompareText(s3,s4) = 0 then
    ShowMessage('相同')
  else
    ShowMessage('不同');  
end;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
  • 运行结果

相同 相同

# 1.3. Copy

function Copy(S: String; Index,Count: Integer): String;
1
  • 该函数用于返回一个字符串的字串或者动态数组中的一个元素。
部分 说明
S 待取的字符串
Index 整形表达式,作为截取字符串或元素的起始位置
Count 整形表达式,表示截取的字符数目
  • 返回值:函数返回截取的字符串或数组。

  • 示例:

var
  s1: String;
  s3: String;
begin
  s1 := 'Hi,Hello';
  s3 := Copy(s1,1,4);
  ShowMessage(s3);
end;
1
2
3
4
5
6
7
8
  • 运行结果:

Hi,H

# 1.4. LeftStr

function LeftStr(const AText: AnsiString; const ACount: Integer): AnsiString;
1
  • 该函数在字符串的开始处返回指定长度的字符串。
部分 说明
AText 是一个字符串表达式
ACount 是一个整型表达式,表示函数返回的子字符串长度
  • 返回值:函数返回截取的字符串。

  • 示例:

begin
  ShowMessage(LeftStr('我是中国人',2));
  ShowMessage(LeftStr('Hello world',7));
end;
1
2
3
4
  • 运行结果:

我是 Hello w

# 1.5. Length

fucntion Length(S): Integer;
1
  • 该函数返回字符串的字符数。
部分 说明
S 一个字符串表达式
  • 返回值:函数返回字符串的长度数值。

  • 示例:

var
  s1: String;
  s3: String;
begin
  s1 := 'Hi,Hello';
  s3 := IntToStr(Length(s1));
  ShowMessage('字符串的长度为:' + s3);
end;
1
2
3
4
5
6
7
8
  • 运行结果:

字符串的长度为:8

# 1.6. LowerCase

function LowerCase(const S: string): String;
1
  • 该函数将字符串转换为小写格式。
部分 说明
S 待转换的字符串
  • 返回值:函数返回指定的字符串的小写格式。

  • 示例:

var
  s1: String;
begin
  s1 := 'Hi,Hello';
  s1 := LowerCase(s1);
  ShowMessage(s1);
end;
1
2
3
4
5
6
7
  • 运行结果

hi,hello

# 1.7. Pos

function Pos(SubStr: String; S: String): Integer;
1
  • 该函数返回子字符串第一次出现在指定字符串中的索引值。
部分 说明
SubStr 是一个要查找的字符串表达式
S 源字符串
  • 返回值:如果字符串在源字符串中存在,则函数返回子字符串在源字符串中首次出现的位置,否则函数返回0。

  • 示例:

var
  s1: String;
  s2: String;
  s3: String;
begin
  s1 := 'Hi,Hello';
  s2 := 'He';
  s3 := IntToStr(Pos(s2,s1));
  ShowMessage('字符串所在的位置为:' + s3);
end;
1
2
3
4
5
6
7
8
9
10
  • 运行结果:

字符串所在的位置为:4

# 1.8. PosEx

function PosEx(const SubStr, S: string; Offset: Integer): Integer;
1
  • 该函数返回子字符串在源字符串中的索引值。
部分 说明
SubStr 欲查找的字符串表达式
S 源字符串
Offset 是一个整型表达式,表示从源字符串的什么位置开始检索
  • 返回值:函数在Offset开始处返回SubStr在S中的索引值。如果子字符串没有发现或Offset大于S的长度或者Offset小于1,函数返回0。

  • 示例:

begin
  ShowMessage(IntToStr(PosEx('Hello','Hello IsoFace',2)));
  ShowMessage(IntToStr(PosEx('IsoFace','Hello IsoFace',2)));
end;
1
2
3
4
  • 运行结果:

0 7

# 1.9. QuotedStr

function QuotedStr(const S: String): String;
1
  • 该函数返回字符串的引证串,引证串是在字符串的开始和结尾添加”'“。
部分 说明
S 字符串表达式
  • 返回值:函数返回参数指定字符串的引证串。

  • 示例:

var
  s1: String;
  s2: String;
begin
  s1 := 'Hi,Hello';
  s2 := 'He';
  ShowMessage(s1);
  ShowMessage(QuotedStr(s2));
end;
1
2
3
4
5
6
7
8
9
  • 运行结果:

Hi,Hello 'He'

# 1.10. RightStr

function RightStr(const AText: AnsiString; const ACount: Integer): AnsiString;
1
  • 该函数返回字符串尾端开始指定长度的字符串。
部分 说明
AText 是一个字符串表达式
ACount 是一个整型表达式,表示函数返回的子字符串长度
  • 返回值:函数返回截取的字符串。

  • 示例:

begin
  ShowMessage(RightStr('我是中国人',3));
  ShowMessage(RightStr('Hello world',4));
end;
1
2
3
4

# 1.11. SameText

function SmaeText(const S1,S2:String): Boolean;
1
  • 该函数根据序数值比较两个字符串,不区分大小写。
部分 说明
S1 待比较的字符串表达式
S2 待比较的字符串表达式
  • 返回值:如果S1与S2相等,函数返回值为True,否则返回False。

  • 示例:

var
  s1,s2: String;
begin
  s1 := 'Hello IsoFace';
  s2 := 'hello IsoFace';
  if SameText(s1,s2) then
    ShowMessage('相同') 
  else
    ShowMessage('不同'); 
end;
1
2
3
4
5
6
7
8
9
10
  • 运行结果:

相同

# 1.12. StrECopy

function StrECopy(Dest: PAnsiChar; const Source: PAnsiChar): PAnsiChar;
1
  • 该函数将参数Source中的字符复制至Dest字符串的尾部,Dest缓冲区中必须有足够的空间。嵌套使用该函数连接字符串比单个使用StrCopy函数更有效。
部分 说明
Dest 目的缓冲区
Source 源缓冲区
  • 返回值:返回复制完成的数据。

  • 示例:

const
  Ob: PAnsiChar = 'Object';
  Man: PAnsiChar = 'Man';
var
  S: PAnsiChar; 
begin
  GetMem(S,15);
  StrECopy(StrECopy(StrECopy(S, Ob),''),Man);
  ShowMessage(String(S));
end;
1
2
3
4
5
6
7
8
9
10
  • 运行结果:

ObjectMan

# 1.13. StrEnd

function StrEnd(const Str: PAnsiChar): PAnsiChar;
1
  • 该函数返回值指向参数Str字符串尾的空字符指针。
部分 说明
Str 一个字符串指针
  • 示例:
var
  TextBuffer: PAnsiChar;
  Ptr: PAnsiChar;
begin
  TextBuffer := 'ABCDEFG';
  Ptr := StrEnd(TextBuffer);
  ShowMessage(Ptr^);
end;
1
2
3
4
5
6
7
8
  • 运行结果:显示空字符。

# 1.14. StringOfChar

function StringOfChar(Ch: Char; Count: Integer): String;
1
  • 该函数返回一个循环指定次数字符的字符串。
部分 说明
Ch 字符类型表达式,指定字符串的内容
Count 整型表达式,指定函数返回的字符串由多少个字符组成
  • 返回值:函数返回一个由Count指定个数和Ch指定字符的字符串。

  • 示例:

var
  s1: Char;
  s2: Integer;
  s3: String;
begin
  s1 := 'A';
  ShowMessage(StringOfChar(S1,5) + '  ' + StringOfChar('C',5));
end;
1
2
3
4
5
6
7
8
  • 运行结果:

AAAAA CCCCC

# 1.15. StrLCat

function StrLCat(Dest: PAnsiChar; const Source: PAnsiChar; MaxLen: Cardinal): PAnsiChar;
1
  • 该函数按参数MaxLen指定的长度将参数Source中的字符串添加至Dest参数的字符串尾部。
部分 说明
Dest 两个字符串指针
Source 比较的长度
MaxLen 字符串连接的最大长度
  • 返回值:返回添加完成后的字符串。

  • 示例:

const
  Ob: PAnsiChar = 'Object';
  Man: PAnsiChar = 'Man';
var
  S: PAnsiChar;
begin
  GetMem(S,9);
  S := StrLCat(S,Ob,6);
  S := StrLCat(S,Man,9);
  ShowMessage(String(S));
end;
1
2
3
4
5
6
7
8
9
10
11
  • 运行结果:

ObjectMan

# 1.16. StrLComp

function StrLComp(const S1:PAnsiChar;const S2: PAnsiChar;MaxLen : Cardinal) : Integer
1
  • 该函数不区分大小写比较两个字符串。
部分 说明
S1,S2 两个字符串指针
MaxLen 比较的长度
  • 返回值:如果比较的字符串指定长度处相同,则返回0,否则返回其他数值。

  • 示例:

const
  S1: PAnsiChar = 'Enterprise';
  S2: PAnsiChar = 'Enter';
var
  ComStr: String;
begin
    if StrLComp(S1,S2,6) = 0 then
    ComStr := 'equal'
    else
      ComStr := 'different';
    ShowMessage(ComStr);
end.
1
2
3
4
5
6
7
8
9
10
11
12
  • 运行结果:

equal

# 1.17. StrLen

function StrLen(const Str: PAnsiChar): Cardinal;
1
  • 该函数用于获取Str字符串的长度。
部分 说明
Str 字符串指针
  • 返回值:返回显示的字符串的长度。

  • 示例:

const
  Ob: PAnsiChar = 'Object';
begin
  ShowMessage(IntToStr(StrLen(Ob)));
end;
1
2
3
4
5
  • 运行结果:

6

# 1.18. StrLiComp

function StrLIComp(const Str1, Str2: PAnsiChar; MaxLen: Cardinal): Integer;
1
  • 该函数用于不区分大小写比较两个字符串。
部分 说明
Str1,Str2 两个字符串指针
MaxLen 比较的长度
  • 返回值:当两者字符串的取值相等时,返回数值0。

  • 示例:

const
  S1: PAnsiChar = 'Enterprise';
  S2: PAnsiChar = 'Enter';
var
  ComStr: String;
begin
  if StrLiComp(S1,S2,5) = 0 then
    ShowMessage('Equal')
  Else
    ShowMessage('different');
end;
1
2
3
4
5
6
7
8
9
10
11
  • 运行结果:

Equal

# 1.19. StrLower

function StrLower(Str: PAnsiChar): PAnsiChar;
1
  • 将参数Str中的字符串转换为小写并返回。
部分 说明
Str 要转换为小写的字符串指针
  • 返回值:返回转换为小写的字符串指针。

  • 示例:

const
  S1: PAnsiChar = 'ENTerPriSe';
begin
  ShowMessage(String(StrLower(S1)) + ' '  + String(StrUpper(S1))); 
end;
1
2
3
4
5
  • 运行结果:

enterprise ENTERPRISE

# 1.20. StrMove

function StrMove(Dest: PAnsiChar; const Source: PAnsiChar; Count: Cardinal): PAnsiChar;
1
  • 该函数将参数Source中的Count个字符串复制到Dest字符串中并返回Dest中的字符串,Source和Dest中的字符串可交叠。
部分 说明
Dest 目标字符串指针
Source 源字符串指针
Count 复制字符串的数量
  • 返回值:返回移动复制完成后的字符串指针。

  • 示例:

const
  Ob: PAnsiChar = 'Object';
var
  S: PAnsiChar;
begin
  GetMem(S,14);
  S := StrMove(S,Ob,6);
  ShowMessage(String(S));
end;
1
2
3
4
5
6
7
8
9
  • 运行结果:

Object

# 1.21. StrPCopy

function StrPCopy(Dest: PAnsiChar; const Source: AnsiString): PAnsiChar;
1
  • 该函数将参数Source中的字符串复制至Dest参数的字符串尾部。
部分 说明
Dest 两个字符串指针
Source 比较的长度
  • 返回值:返回拼接完成后的字符串指针。

  • 示例:

const
  Ob: PAnsiChar = 'Object';
var
  S: PAnsiChar;
begin
  GetMem(S,14);
  S := StrPCopy(S,Ob);
  ShowMessage(String(S));
end;
1
2
3
4
5
6
7
8
9
  • 运行结果:

Object

# 1.22. StrPLCopy

function StrPLCopy(Dest: PAnsiChar; const Source: AnsiString; MaxLen: Cardinal): PAnsiChar;
1
  • 该函数将参数MaxLen指定的长度将参数Source中的字符串复制至Dest参数的字符串尾部。
部分 说明
Dest 两个字符串指针
Source 比较的长度
MaxLen 字符串连接的最大长度
  • 返回值:返回拼接完成后的字符串数值。

  • 示例:

const
  Ob: PAnsiChar = 'Object';
var
  S: PAnsiChar;
begin
  GetMem(S,14);
  S := StrPLCopy(S,Ob,6);
  ShowMessage(String(S));
end;
1
2
3
4
5
6
7
8
9
  • 运行结果:

Object

# 1.23. StrPos

function StrPos(const Str1, Str2: PAnsiChar): PAnsiChar;
1
  • 该函数用于返回Str2在Str1中首次出现的指针。
部分 说明
Str1 待查找的字符串指针
Str2 要查找的字符串指针
  • 返回值:该函数返回Str2在Str1中首次出现的指针。

  • 示例:

var
  Location: PAnsiChar;
begin
  if StrPos(PAnsiChar('Enterproise'),PAnsiChar('Enter')) <> nil then
    ShowMessage('找到字串')
  else
    ShowMessage('未找到字串');  
end;
1
2
3
4
5
6
7
8
  • 运行结果:

找到字串

# 1.24. StrRScan

function StrRScan(const Str: PAnsiChar; Chr: AnsiChar): PAnsiChar;
1
  • 该函数返回参数Chr字符在Str字符串中最后一次出现的指针。
部分 说明
Str 待查找的字符串指针
Chr 要查找的字符串指针
  • 返回值:函数返回参数Chr字符在Str字符串中最后一次出现的指针。

  • 示例:

var
  P: PAnsiChar;
begin
  P := StrRScan('EQ3258EDX','X');
  if P <> nil then
  begin
   ShowMessage('找到该字符:' + String(P)) 
  end;
end;
1
2
3
4
5
6
7
8
9
  • 运行结果:

找到该字符:X

# 1.25. StrScan

function StrScan(const Str: PAnsiChar; Chr: AnsiChar): PAnsiChar;
1
  • 该函数返回指定字符Chr在str参数指定的字符串中首次出现的指针。
部分 说明
str 待查找的字符串指针
Chr 要查找的字符
  • 返回值:返回指定字符Chr在str参数指定的字符串中首次出现的指针。

  • 示例:

var
  P: PAnsiChar;
begin
  P := StrScan('EQ3258EDX','Q');
  if P <> nil then
  begin
   ShowMessage('找到该字符:' + String(P)) 
  end;
end;
1
2
3
4
5
6
7
8
9
  • 运行结果:

找到该字符:Q

# 1.26. Trim

function Trim(const S: String): String;
1
  • 该函数用于删除字符串的首尾空格。
部分 说明
S 字符串表达式
  • 返回值:函数返回去掉首尾空格后的新字符串。

  • 示例:

var
  s1: String;
  s2: String;
begin
  s1 := 'Hi,H e  llo';
  s2 := '   IsoFace   ';
  ShowMessage(Trim(s1));
  ShowMessage(Trim(s2));
end;
1
2
3
4
5
6
7
8
9
  • 运行结果:

Hi,H e llo IsoFace

# 1.27. TrimLeft

function TrimLeft(const S: String): String;
1
  • 该函数用于删除字符串的首部空格。
部分 说明
S 字符串表达式
  • 返回值:函数返回去掉首部空格后的新字符串。

  • 示例:

var
  s1: String;
  s2: String;
begin
  s1 := '   Hi,H e  llo';
  s2 := '   IsoFace   ';
  ShowMessage(TrimLeft(s1));
  ShowMessage(TrimLeft(s2));
end;
1
2
3
4
5
6
7
8
9
  • 运行结果:

Hi,H e llo IsoFace    

# 1.28. TrimRight

function TrimRight(const S: String): String;
1
  • 该函数用于删除字符串的尾部空格。
部分 说明
S 字符串表达式
  • 返回值:函数返回去掉尾部空格后的新字符串。

  • 示例:

var
  s1: String;
  s2: String;
begin
  s1 := '   Hi,H e  llo';
  s2 := '   IsoFace   ';
  ShowMessage(TrimRight(s1));
  ShowMessage(TrimRight(s2));
end;
1
2
3
4
5
6
7
8
9
  • 运行结果:

    Hi,H e llo     IsoFace

# 1.29. UpperCase

function UpperCase(const S: string): String;
1
  • 该函数将字符串转换为大写格式。
部分 说明
S 待转换的字符串
  • 返回值:函数返回指定的字符串的大写格式。

  • 示例:

var
  s1: String;
begin
  s1 := 'Hi,Hello';
  s1 := UpperCase(s1);
  ShowMessage(s1);
end;
1
2
3
4
5
6
7
  • 运行结果

HI,HELLO

# 2. 科学计算函数

# 2.1. Abs

function Abs(X);
1
  • 该函数用于返回指定数值的绝对值。
部分 说明
X 实型表达式
  • 返回值:函数返回参数X指定的绝对值。

  • 示例:

begin
  SHowMessage(IntToStr(Abs(-15)));
  ShowMessage(FloatToStr(Abs(-1.5)));
end;
1
2
3
4
  • 运行结果

15 1.5

# 2.2. Exp

function Exp(X: Real): Real;
1
  • 该函数用于返回指定数的指数。
部分 说明
X 实型表达式
  • 返回值:函数返回e的X次幂,e是自然对数的底。

  • 示例:

begin
  ShowMessage(FloatToStr(Exp(2)));
  ShowMessage(FloatToStr(Exp(1.5)));
  ShowMessage(FloatToStr(Exp(0)));
end;
1
2
3
4
5
  • 运行结果:

7.38905609893065 4.48168907033806 1

# 2.3. Int

function Int(X: Extended):Extended;
1
  • 该函数返回实数的整数部分。
部分 说明
X 实型表达式
  • 返回值:函数返回参数X的整数部分。

  • 示例:

begin
  ShowMessage(FloatToStr(Int(-12.025)));
  ShowMessage(FloatToStr(Int(12.012)));
  ShowMessage(FloatToStr(Frac(1.25)));
end;
1
2
3
4
5
  • 运行结果:

-12 12 0.25

# 2.4. IsZero

function IsZero(const A: Extended; Epsilon: Extended): Boolean;
1
  • 该函数测试实型表达式是否等于或者接近零。
部分 说明
A 待测的表达式
Epsilon 与零之间的差距
  • 返回值:如果A的值为0,函数返回True,如果指定Epsilon参数,当A与0的差距小于等于Epsilon时,函数返回True,否则返回False。

  • 示例:

begin
  if IsZero(5,5.1) then
    ShowMessage('接近于零。');
  if IsZero(3000.1 , 3000) then
    ShowMessage('接近于零。')
  else
    ShowMessage('超出。');
end;
1
2
3
4
5
6
7
8
  • 运行结果:

接近于零。 超出。

# 2.5. Ln

function Ln(X: Real):Real;
1
  • 该函数用来计算一个数的自然对数。
部分 说明
X 实型表达式
  • 返回值:X的自然对数值。

  • 示例:

begin
  ShowMessage(FloatToStr(Ln(35.6)));
  ShowMessage(FloatToStr(Ln(20.6)));
end;
1
2
3
4
  • 运行结果:

3.57234563785798 3.02529107579554

# 2.6. Pi

function Pi: Extnded;
1
  • 函数Pi返回圆周率的值。

  • 返回值:函数Pi返回圆周率的值。

  • 示例:

begin
  ShowMessage(FloatToStr(Pi));
end;
1
2
3
  • 运行结果:

3.14159265358979

# 2.7. Power

function Power(const Base,Exponent: Extended): Extended;
1
  • 该函数返回底数的任何次幂。
部分 说明
Base 实型表达式,表示一个底数
Exponent 实型表达式,表示一个指数
  • 返回值:函数的返回值是Base的Exponent次幂。

  • 示例:

begin
  ShowMessage(FloatToStr(Power(2,4)));
end;
1
2
3

# 2.8. Round

function Round(X:Extended): Int64;
1
  • 该函数将实数四舍五入为整数。
部分 说明
X 实型表达式
  • 返回值:函数的返回值是X四舍五入后的整数。

  • 示例:

begin
  ShowMessage(FloatToStr(Round(-4.6)));
  ShowMessage(FloatToStr(Round(-4.3)));
  ShowMessage(FloatToStr(Round(4.6)));
  ShowMessage(FloatToStr(Round(4.3)));
end;
1
2
3
4
5
6
  • 运行结果:

-5 -4 5 4

# 2.9. SameValue

function SameValue(const A, B: Extended; Epsilon: Extended): Boolean;
1
  • 该函数用于检测两个实数是否相同或相近。
部分 说明
A 待比较的实型表达式
B 待比较的实型表达式
Epsilon 实型表达式,表示与零的差距
  • 返回值:当Epsilon为零时,如果A与B相等,函数返回True,否则为False。当Epsilon不为零时,如果A与B的差距小于等于Epsilon,函数返回True,否则为False。

  • 示例:

begin
  if SameValue(10.2,15.2,4) then
    ShowMessage('相同')
  else
    ShowMessage('不同');
  if SameValue(10.2,15.2,5) then
    ShowMessage('相同')
  else
    ShowMessage('不同');
end;
1
2
3
4
5
6
7
8
9
10
  • 运行结果:

不同 相同

# 2.10. Sqr

function Sqr(X:Extended): Extended;
function Sqr(X:Integer):Integer;
1
2
  • 该函数用于计算指定数的平方。
部分 说明
X 数字达式
  • 返回值:函数返回值是X的平方。

  • 示例:

begin
  ShowMessage(FloatToStr(Sqr(10.1)));
  ShowMessage(FloatToStr(Sqr(25)));
end;
1
2
3
4
  • 运行结果:

102.01 625

# 2.11. Sqrt

function Sqrt(X:Extended): Extended;
1
  • 该函数用于计算一个数的平方根。
部分 说明
X 数字达式
  • 返回值:函数返回值是X的平方根。

  • 示例:

begin
  ShowMessage(FloatToStr(Sqrt(10.1)));
  ShowMessage(FloatToStr(Sqrt(25)));
end;
1
2
3
4
  • 运行结果:

3.17804971641414 5

# 2.12. Trunc

function Trunc(X:Extended):Int64;
1
  • 该函数返回一个实数的整数部分。
部分 说明
X 数字达式
  • 返回值:函数返回X的整数部分。

  • 示例:

begin
  ShowMessage(IntToStr(Trunc(12.45)));
  ShowMessage(IntToStr(Trunc(-12.45)));
  ShowMessage(IntToStr(Trunc(0)));
end;
1
2
3
4
5
  • 运行结果:

12 -12 0

# 2.13. VarComplexAbs

function VarComplexAbs(const AValue: Variant): Double;
1
  • 该函数返回一个复数的绝对值(模)。
部分 说明
AValue 复数
  • 返回值:函数返回AValue的绝对值。

  • 示例:

begin
  ShowMessage(FloatToStr(VarComplexAbs('3+4i')));
  ShowMessage(FloatToStr(VarComplexAbs('3-4i')));
  ShowMessage(FloatToStr(VarComplexAbs('1+2i')));
end;
1
2
3
4
5
  • 返回值:

5 5 2.23606797749979

# 2.14. VarComplexAbsSqr

function VarComplexAbsSqr(const AValue: Variant): Double;
1
  • 该函数返回一个复数的绝对值的平方。
部分 说明
AValue 复数
  • 返回值:函数返回AValue绝对值的平方。
begin
  ShowMessage(FloatToStr(VarComplexAbsSqr('3+4i')));
  ShowMessage(FloatToStr(VarComplexAbsSqr('3-4i')));
  ShowMessage(FloatToStr(VarComplexAbsSqr('1+2i')));
end;
1
2
3
4
5
  • 运行结果:

25 25 5

# 2.15. VarComplexAngle

function VarComplexAngle(const AValue: Variant): Double;
1
  • 该函数返回一个复数对应的角度。
部分 说明
AValue 复数
  • 示例:
begin
  ShowMessage(FloatToStr(VarComplexAngle('3+4i')));
  ShowMessage(FloatToStr(VarComplexAngle('3-4i')));
  ShowMessage(FloatToStr(VarComplexAngle('1+2i')));
end;
1
2
3
4
5
  • 运行结果:

0.927295218001612 -0.927295218001612 1.10714871779409

# 3. 序数函数

# 3.1. Odd

function Odd(X: Longint):Boolean;
1
  • 该函数用于判断一个数的奇偶性。
部分 说明
X 待检验的数
  • 返回值:如果X为奇数,函数返回True,否则返回False。

  • 示例:

var
  i: Integer;
begin
  i := 3;
  if Odd(i) then
    ShowMessage(IntToStr(i) + '为奇数')
  else
    ShowMessage(IntToStr(i) + '为偶数');  
end;
1
2
3
4
5
6
7
8
9
  • 运行结果:

3为奇数

# 3.2. Ord

function Ord(X);
1
  • 该函数用于获取顺序类型表达式的顺序值。
部分 说明
X 序数类型表达式
  • 返回值:返回一个顺序表达式的顺序值。

  • 示例:

begin
  ShowMessage('''a''在ASCII码中的顺序值为:' + IntToStr(Ord('a')));
end;
1
2
3
  • 运行结果:

'a'在ASCII码中的顺序值为:97

# 3.3. Pred

function Pred(X);
1
  • 该函数用于获取顺序式表达式的前驱。
部分 说明
X 序数类型表达式
  • 返回值:X的前驱,与X的类型一致。

  • 示例:

begin
  ShowMessage('B的前驱值为:' + Pred('B'));
  ShowMessage('c的前驱值为:' + Pred('c'));
  ShowMessage('9的前驱值为:' + Pred('9'));
end;
1
2
3
4
5
  • 运行结果:

B的前驱值为:A c的前驱值为:b 9的前驱值为:8

# 3.4. Succ

function Succ(X);
1
  • 该函数用于获取顺序式表达式的后继。
部分 说明
X 序数类型表达式
  • 返回值:X的后继,与X的类型一致。

  • 示例:

begin
  ShowMessage('B的后继值为:' + Succ('B'));
  ShowMessage('c的后继值为:' + Succ('c'));
  ShowMessage('8的后继值为:' + Succ('8'));
end;
1
2
3
4
5
  • 运行结果:

B的后继值为:C c的后继值为:d 8的后继值为:9

# 4. 三角函数

# 4.1. ArcCos

function ArcCos(const X : Extended): Extended;
1
  • 该函数用于计算参数X的反余弦值。X的取值在-1至1之间。
部分 说明
X 要计算的数值
  • 返回值:返回指定参数的反余弦值。

  • 示例:

begin
  ShowMessage(FloatToStr(ArcCos(0.5)));
end;
1
2
3
  • 运行结果:

1.0471975511966

# 4.2. ArcSin

function ArcSin(const X : Extended) : Extended;
1
  • 该函数用于计算参数X的反正弦值,X的值为-1至1之间。
部分 说明
X 要计算的数值
  • 返回值:返回指定参数的反正弦值。

  • 示例:

begin
  ShowMessage(FloatToStr(ArcSin(0.5)));
end;
1
2
3
  • 运行结果:

0.523598775598299

# 4.3. ArcTan

function ArcTan(const X: Extended): Extended;
1
  • 该函数计算参数X的反正切值。
部分 说明
X 将要计算反正切的值
  • 返回值:返回指定参数的反正切值。

  • 示例:

begin
  ShowMessage(FloatToStr(ArcTan(0.5)));
end;
1
2
3
  • 返回结果:

0.463647609000806

# 4.4. ArcTan2

function ArcTan2(const Y, X: Extended): Extended;
1
  • 该函数获取正确象限中的角度。
部分 说明
X,Y 获取正确象限角度的参数
  • 返回值:返回正确象限中的角度。

  • 示例:

begin
  ShowMessage(FloatToStr(ArcTan2(4,5)));
end;
1
2
3
  • 返回结果:

0.67474094223553

# 4.5. Cos

function Cos(Const X: Extended): Extended;
1
  • 该函数计算参数X的余弦值。
部分 说明
X 将要计算余弦的值
  • 返回值:返回指定参数的余弦值。

  • 示例:

begin
  ShowMessage(FloatToStr(Cos(0.5)));
end;
1
2
3
  • 运行结果

0.877582561890373

# 4.6. Sin

function Sin(const X: Extended): Extended;
1
  • 该函数计算参数X的正弦值。
部分 说明
X 将要计算正弦的值
  • 返回值:返回指定参数的正弦值。

  • 示例:

begin
  ShowMessage(FloatToStr(Sin(0.5)));
end;
1
2
3
  • 运行结果:

0.479425538604203

# 5. 统计函数

# 5.1. MaxIntValue

function MaxIntValue(const Data: array of Integer): Integer;
1
  • 该函数获取Data数组中的最大整数。
部分 说明
Data 一个整型数组
  • 返回值:返回数组中数值最大的整数。

  • 示例:

var
  Data: array[0..3] of Integer;
  max: Integer;
begin
  Data[0] := 5;
  Data[1] := 40;
  Data[2] := 34;
  Data[3] := 50;
  max := MaxIntValue(Data);
  ShowMessage(IntToStr(max));
end;
1
2
3
4
5
6
7
8
9
10
11
  • 运行结果:

50

# 5.2. MinIntValue

function MinIntValue(const Data: array of Integer): Integer;
1
  • 该函数获取Data数组中的最小整数。
部分 说明
Data 一个整型数组
  • 返回值:返回整数。

  • 示例:

var
  Data: array[0..3] of Integer;
  max: Integer;
begin
  Data[0] := 5;
  Data[1] := 40;
  Data[2] := 34;
  Data[3] := 50;
  max := MinIntValue(Data);
  ShowMessage(IntToStr(max));
end;
1
2
3
4
5
6
7
8
9
10
11
  • 运行结果:

5

# 5.3. SumInt

function SumInt(const Data: array of Integer): Integer;
1
  • 该函数返回整数型数组中所有数值的总和。
部分 说明
Data 待求和数组
  • 返回值:返回数组中所有值的总和,整型。

  • 示例:

begin
  ShowMessage(IntToStr(SumInt([150,100])));
end;
1
2
3
  • 运行结果:

250

# 6. 金融函数

# 6.1. DoubleDecliningBalance

function DoubleDecliningBalance(const Cost, Salvage: Extended; Life, Period: Integer): Extended;
1
  • 该函数使用双倍余额递减法或其他方法指定的方法计算一笔资产在给定期间内的折旧值。
部分 说明
Cost 表示资产原值
Salvage 表示资产在折旧期末的价值,也称为资产残值
Life 表示折旧期限,也称作资产的使用寿命
Period 表示要计算折旧值的期间
  • 返回值:返回资产的折旧值数据。

  • 示例:

begin
  ShowMessage(FloatToStr(DoubleDecliningBalance(800000,80000,6,2)));
end;
1
2
3
  • 运行结果:

177777.777777778

# 6.2. InternalRateOfReturn

function InternalRateOfReturn(const Guess: Extended; const CashFlows: array of Double): Extended;
1
  • 返回一个由数值代表的一组现金流的内部收益率。
部分 说明
Guess 表示对函数计算结果的估计值
CashFlows Double类型数据组,表示某一菜单的支出和收入,负值表示支出,正值表示收入
  • 返回值:返回内部收益率数值。

  • 示例:

var
  my: Array[0..2] of Double;
begin
  my[0] := -300000;
  my[1] := 120000;
  my[2] := 90000;
  ShowMessage(FloatToStr(InternalRateOfReturn(0.1,my)*100));
end;
1
2
3
4
5
6
7
8
  • 运行结果:-21.690481051547

# 6.3. SYDDepreciation

function SYDDepreciation(const Cost, Salvage: Extended; Life, Period: Integer): Extended;
1
  • 该函数返回某项资产按年限总和折旧法计算的指定期间的折旧值。
部分 说明
Cost 表示资产原值
Salvage 表示资产在折旧期末的价值,也称为资产残值
Life 表示折旧期限,也称作资产的使用寿命
Period 表示要计算折旧值的期间
  • 返回值:返回折旧的数据值。

  • 示例:

begin
  ShowMessage(FloatToStr(SYDDepreciation(200000,40000,6,1)));
end;
1
2
3
  • 运行结果:

45714.2857142857

# 7. 随机数函数

# 7.1. Random

function Random[(Range:Integer)];
1
  • 该函数用于产生一个0≤X≤Range的随机数。
部分 说明
Range 产生随机数的范围
  • 返回值:在[0,Range]之间的任意数。

  • 示例:

begin
  ShowMessage(IntToStr(Random(10)));
end;
1
2
3
  • 运行结果:运行该语句后产生一个大于等于0小于10的整数。

# 7.2. RandomFrom

function RandomFrom(const AValues: array of Extended): Extended;
1
  • 该函数从参数指定的数组中随机选出一个值。
部分 说明
AValues 数组类型变量
  • 返回值:AValue数组中的一个随机数。

  • 示例:

begin
  Randomize;
  ShowMessage(FloatToStr(RandomFrom([1,2,3,4,5,6,7,8,9])));
end;
1
2
3
4
  • 运行结果:运行该语句后在所选的数组范围内生成一个随机数。

# 8. 单位换算函数

# 8.1. CelsiusToFahrenheit

function CelsiusToFahrenheit(const AValue: Double): Double;
1
  • 函数将摄氏温度转换为华氏温度。
部分 说明
AValue 待转换的实型表达式
  • 返回值:函数返回华氏温度表示的数据。

  • 示例:

begin
  ShowMessage(FloatToStr(CelsiusToFahrenheit(37.6)));
end;
1
2
3
  • 运行结果:

99.68

# 8.2. DateTimeToJulianDate

function DateTimeToJulianDate(const AValue: TDateTime): Double;
1
  • 该函数将日期值转换为儒略日。
部分 说明
AValue 日期表达式
  • 返回值:函数返回以儒略日表示的日期。

  • 示例:

begin
  ShowMessage(FloatToStr(DateTimeToJulianDate(Now)));
end;
1
2
3
  • 运行结果:儒略日的表示格式,例如2459187.35728194

# 8.3. DateTimeToModifiedJulianDate

function DateTimeToModifiedJulianDate(const AValue: TDateTime): Double;
1
  • 该函数用于将日期转换为改进的儒略日。
部分 说明
AValue 日期表达式
  • 返回值:函数返回以改进的儒略日。
begin
  ShowMessage(FloatToStr(DateTimeToModifiedJulianDate(Now)));
end;
1
2
3
  • 运行结果:改进的儒略日的表示格式,例如59186.8626061226。

# 8.4. DateTimeToUnix

function DateTimeToUnix(const AValue: TDateTime; AInputIsUTC: Boolean): Int64;
1
  • 该函数将日期转换为UNIX系统或Linux系统日期值。
部分 说明
AValue 日期表达式
AInputIsUTC 输入的时间值是否为UTC时间
  • 返回值:函数返回UNIX系统或者Linux系统日期值。

  • 示例:

begin
  ShowMessage(FloatToStr(DateTimeToUnix(Now,False)));
end;
1
2
3
  • 运行结果:显示当前的Unix时间。

# 8.5. FahrenheitToCelsius

function FahrenheitToCelsius(const AValue: Double): Double;
1
  • 该函数将华氏温度转换为摄氏温度。
部分 说明
AValue 待转换的实型表达式
  • 返回值:函数返回以摄氏温度表示的数据。

  • 示例:

begin
  ShowMessage(FloatToStr(FahrenheitToCelsius(95)));
end;
1
2
3
  • 运行结果:

35

# 9. 日期函数

# 9.1. CurrentYear

function CurrentYear: Word;
1
  • 返回系统当前的年份。

  • 返回值:函数返回系统当前的年份。

  • 示例:

var
  Yearis: word;
begin
  Yearis := CurrentYear();
  ShowMessage(IntToStr(Yearis));
end;
1
2
3
4
5
6
  • 运行结果:系统显示当前年份。

# 9.2. Date

function Date: TDateTime;
1
  • 获得系统当前日期。

  • 返回值:返回系统当前日期。

  • 示例:

begin
  ShowMessage(DateToStr(Date));
end;
1
2
3
  • 运行结果:

显示系统当前日期,比如2019-10-06

# 9.3. DateOf

function DateOf(const AValue: TDateTime): TDateTime;
1
  • 该函数用于将给定的TDateTime值转化为仅包含日期时间信息的TDateTime值。
部分 说明
AValue 待转换的日期时间值
  • 返回值:返回仅包含日期的TDateTime值。

  • 示例:

begin
  ShowMessage(DateToStr(DateOf(Now)));
end;
1
2
3
  • 运行结果:显示当前日期。

# 9.4. DateTimeToFileDate

function DateTimeToFileDate(DateTime: TDateTime): Integer;
1
  • 该函数将TDateTime对象的日期时间表示形式转换为OS时间信息。
部分 说明
DateTime 待转换的日期时间值
  • 返回值:返回参数对应的OS时间信息。

  • 示例:

begin
  ShowMessage('操作系统对应的时间是:' + IntToStr(DateTimeToFileDate(Now)));
end;
1
2
3
  • 运行结果:显示操作系统的对应时间。

# 9.5. DateTimeToStr

function DateTimeToStr(DateTime:TDateTime):String;
1
  • 该函数将TDateTime的值转换为字符串类型。
部分 说明
DateTime TDateTime日期时间类型
  • 返回值:TDateTime值转换后的字符串类型。

  • 示例:

begin
  ShowMessage(DateTimeToStr(Now));
end;
1
2
3
  • 运行结果:

返回当前的系统时间,例如 2020-01-20 12:30:05

# 9.6. DateToStr

function DateToStr(DateTime:TDateTime):String;
1
  • 该函数将TDateTime的值转换为字符串类型。
部分 说明
DateTime TDateTime日期时间类型
  • 返回值:TDateTime值转换后的字符串类型。

  • 示例:

begin
  ShowMessage(DateToStr(Now));
  ShowMessage(DateToStr(Date()));
end;
1
2
3
4
  • 运行结果:

返回当前的系统时间,例如 2020-01-20 返回当前的系统时间,例如 2020-01-20

# 9.7. DayOf

function DayOf(const AValue: TDateTime): Word;
1
  • 该函数返回指定TDateTime值表示日期的值。
部分 说明
AValue 表示日期
  • 返回值:返回指定日期的值(1-31)。

  • 示例

begin
  ShowMessage(IntToStr(DayOf(Now)));
end;
1
2
3
  • 运行结果:显示当前的日期数值。

# 9.8. DayOfTheMonth

function DayOfTheMonth(const AValue: TDateTime): Word;
1
  • 该函数用于计返回指定月份的日期数值。
部分 说明
AValue 指定日期
  • 返回值:返回指定日期的日的值(1-31)。

  • 示例:

begin
  ShowMessage(IntToStr(DayOf(StrToDate('2020-11-1'))) + ' ' + IntToStr(DayOfTheMonth(StrToDate('2020-11-11'))));
end;
1
2
3
  • 运行结果:

1 11

# 9.9. DayOfTheWeek

function DayOfTheWeek(const AValue: TDateTime): Word;
1
  • 该函数用于计算指定的日期为星期几。此处以星期一开始计数。
部分 说明
AValue 待计算的日期类型
  • 返回值:返回计算后的Word类型值(1-7)。

  • 示例:

begin
  ShowMessage(IntToStr(DayOfTheWeek(Date())) + ' ' + IntToStr(DayOfTheWeek(StrToDate('2020-3-11'))));
end;
1
2
3
  • 运行结果:显示当前日期的星期数,2020年3月11日显示为3,表示为星期三。

# 9.10. DayOfTheYear

function DayOfTheYear(const AValue: TDateTime): Word;
1
  • 该函数用于计算指定的日期为一年中的第几天。
部分 说明
AValue 待计算的日期类型
  • 返回值:返回计算后的Word类型值。

  • 示例:

begin
  ShowMessage(IntToStr(DayOfTheYear(StrToDate('2020-11-01'))));
end;
1
2
3
  • 运行结果:

306

# 9.11. DayOfWeek

function DayOfWeek(const DateTime: TDateTime): Word;
1
  • 该函数用于计算指定的日期为星期几。以星期日为开始进行计数。
部分 说明
Date 待计算的日期类型
  • 返回值:返回计算后的整数(1-7)。

  • 示例:

begin
  ShowMessage(IntToStr(DayOfWeek(Date())) + ' ' + IntToStr(DayOfWeek(StrToDate('2020-3-11'))));
end;
1
2
3
  • 运行结果:显示当前日期的星期数,2020年3月11日显示为4,表示为星期三。

# 9.12. DaysBetween

function DaysBetween(const ANow, AThen: TDateTime): Integer;
1
  • 该函数用于计算指定的两个日期之间相差的天数。
部分 说明
ANow 待比较的日期时间表达式
AThen 待比较的日期时间表达式
  • 返回值:返回参数指定的两个日期相差的天数。

  • 示例:

begin
  ShowMessage(IntToStr(DaysBetween(StrToDate('2010-3-29'),StrToDate('2020-11-1'))));
end;
1
2
3
  • 运行结果:

3870

# 9.13. DaysInAMonth

function DaysInAMonth(const AYear, AMonth: Word): Word;
1
  • 计算指定年份的指定月份的天数。
部分 说明
AYear 指定的年份
AMonth 指定的月份
  • 返回值:返回指定年份的指定月份的天数。

  • 示例:

var
  Yearis,Monthis: Integer;
begin
  Yearis := YearOf(StrToDate('2020-11-1'));
  Monthis := MonthOf(StrToDate('2020-11-1'));
  ShowMessage(IntToStr(DaysInAMonth(YearIs,MonthIs)) + ' ' + IntToStr(DaysInAMonth(2020,2)));
end;
1
2
3
4
5
6
7
  • 运行结果:

30 29

# 9.14. DaysInAYear

function DaysInAYear(const AYear: Word): Word;
1
  • 该函数获得指定年份的总天数。
部分 说明
AYear 计算总天数的年份
  • 返回值:返回指定年份的总天数,可以获取闰年的天数。

  • 示例:

begin
  ShowMessage(IntToStr(DaysInAYear(YearOf(StrToDate('2020-11-1')))));
end;
1
2
3
  • 运行结果:

366

# 9.15. DaysInMonth

function DaysInMonth(const AValue: TDateTime): Word;
1
  • 该函数用于获得一个月的总天数。
部分 说明
AValue 待计算月份总天数的日期
  • 返回值:返回指定日期所在月份的总天数。

  • 示例:

begin
  ShowMessage(IntToStr(DaysInMonth(MonthOf(StrToDate('2020-11-1')))));
end;
1
2
3
  • 运行结果:

30

# 9.16. DaysInYear

function DaysInYear(const AValue: TDateTime): Word;
1
  • 该函数用于获得指定日期时间类型的表达式所在的年份的总天数,如果是闰年,总天数为366。
部分 说明
AValue 待转换的日期时间类型值
  • 返回值:返回指定日期时间类型的表达式所在年份的总天数。

  • 示例:

begin
  ShowMessage(IntToStr(DaysInYear(StrToDate('2020-11-1'))));
end;
1
2
3
  • 运行结果:

366

# 9.17. DaysSpan

function DaySpan(const ANow, AThen: TDateTime): Double;
1
  • 该函数用于计算两个日期时间类型表达式所描述的日期相差的天数。
部分 说明
ANow 待比较的日期时间表达式
AThen 待比较的日期时间表达式
  • 返回值:返回参数给定两个日期相差的天数,是Double型变量。

  • 示例:

begin
  ShowMessage(FloatToStr(DaySpan(StrToDate('2010-11-1'),StrToDate('2020-11-1'))));
end;
1
2
3
  • 运行结果:

3653

# 9.18. DecodeDateFully

function DecodeDateFully(const DateTime: TDateTime; var Year, Month, Day, DOW: Word): Boolean;
1
  • 该函数用于分解TDateTime类型表达式为年、月、日和周值。星期数以星期日作为序数的开始。
部分 说明
DateTime 待分解的日期时间表达式
Year 得到TDateTime值分解后的年份
Month 得到TDateTime值分解后的月份
Day 得到TDateTime值分解后的日
Dow 日期表达式的星期
  • 返回值:如果日期表达式所在的年份是闰年,函数返回True,否则返回False。

  • 示例:

var
  Year,Month,Day,Dow: Word;
begin
  DecodeDateFully(StrToDate('2020-11-1'),Year,Month,Day,Dow);
  ShowMessage(IntToStr(Year) + '年' + IntToStr(Month) + '月'  + IntToStr(Day) + '日 星期数' + IntToStr(Dow));
end;
1
2
3
4
5
6
  • 运行结果:

2020年11月1日 星期数1

# 9.19. EncodeDate

function EncodeDate(Year, Month, Day: Word): TDateTime;
1
  • 该函数把指定的年、月、日转换成对应的TDateTime值。
部分 说明
Year 待转换的TDateTime类型日期值的年份
Month 待转换的TDateTime类型日期值的月份
Day 待转换的TDateTime类型日期值的日
  • 返回值:日期值。

  • 示例:

var
  DateTimeIs: TDateTime;
begin
  DateTimeIs := EncodeDate(2020,11,01);
  ShowMessage(DateToStr(DateTimeIs));
end;
1
2
3
4
5
6
  • 运行结果:

2020-11-01

# 9.20. EncodeDateDay

function EncodeDateDay(const AYear, ADayOfYear: Word): TDateTime;
1
  • 该函数把指定年份的多少天转换为对应的DateTime日期。
部分 说明
AYear 待转换的TDateTime类型日期值的年份
ADayOfYear 指定年份的第多少天
  • 返回值:返回TDateTime日期值。

  • 示例:

var
  DateTimeIs: TDateTime;
begin
  DateTimeIs := EncodeDateDay(2020,306);
  ShowMessage(DateToStr(DateTimeIs));
end;
1
2
3
4
5
6
  • 运行结果:

2020-11-01

# 9.21. EncodeDateMonthWeek

function EncodeDateMonthWeek(const AYear, AMonth, AWeekOfMonth, ADayOfWeek: Word): TDateTime;
1
  • 该函数把指定年份、月份、该月的第几周和周值转换成的日期时间类型。
部分 说明
AYear 日期表达式的年份
AMonth 日期表达式的月份
AWeekOfMonth 该日是当月的第几周
ADayOfWeek 当日的周值
  • 返回值:TDateTime日期值。

  • 示例:

var
  DateTimeIs: TDateTime;
begin
  DateTimeIs := EncodeDateMonthWeek(2020,12,8,12,33,333);
  ShowMessage(DateTimeToStr(DateTimeIs));
end;
1
2
3
4
5
6
  • 运行结果:

2020-05-17

# 9.22. EncodeDateTime

function EncodeDateTime(const AYear, AMonth, ADay, AHour, AMinute, ASecond, AMilliSecond: Word): TDateTime;
1
  • 把指定的年、月、日、时、分、秒和毫秒转换成对应的TDateTime值。
部分 说明
AYear 日期表达式的年份
AMonth 日期表达式的月份
ADay 日期表达式表示的日
AHour 日期表达式表示的小时
AMinute 日期表达式表示的分钟
ASecond 日期表达式表示的秒钟
AMillisecond 日期表达式表示的毫秒
  • 返回值:返回TDateTime日期值。

  • 示例:

var
  DateTimeIs: TDateTime;
begin
  DateTimeIs := EncodeDateTime(2020,12,8,12,33,33,333);
  ShowMessage(DateTimeToStr(DateTimeIs));
end;
1
2
3
4
5
6
  • 运行结果:

2020-12-08 12:33:33

# 9.23. EncodeDateWeek

function EncodeDateWeek(const AYear, AWeekOfYear, ADayOfWeek: Word): TDateTime;
1
  • 该函数用于把指定年份的第几周的周值转换成对应的日期时间类型。
部分 说明
AYear 日期表达式的年份
AWeekOfYear 日期表达式该日期是当年的第多少周
ADayOfWeek 日期表达式的星期
  • 返回值:返回TDateTime日期值。

  • 示例:

var
  DateTimeIs: TDateTime;
begin
  DateTimeIs := EncodeDateWeek(2020,45,1);
  ShowMessage(DateTimeToStr(DateTimeIs));
end;
1
2
3
4
5
6
  • 运行结果:

2020-11-02

# 9.24. EncodeDayOfWeekInMonth

function EncodeDayOfWeekInMonth(const AYear, AMonth, ANthDayOfWeek, ADayOfWeek: Word): TDateTime;
1
  • 该函数把指定年份、月份和该月的第几周的某个周值转换成TDateTime类型。
部分 说明
AYear 日期表达式的年份
AMonth 日期表达式的月份
ANthDayOfWeek 日期表达式的星期值在本月的序号
ADayOfWeek 日期表达式的星期
  • 返回值:TDateTime日期值。

  • 示例:

var
  DateTimeIs: TDateTime;
begin
  DateTimeIs := EncodeDayOfWeekInMonth(2020,4,2,5);
  ShowMessage(DateTimeToStr(DateTimeIs));
end;
1
2
3
4
5
6
  • 运行结果:

2020-04-10

# 9.25. EncodeTime

function EncodeTime(Hour,Min,Sec,MSec: Word): TDateTime;
1
  • 该函数把指定的小时、分、秒、毫秒转换成对应的TDateTime类型值。
部分 说明
Hour 待转换TDateTime类型日期值的小时
Min 待转换TDateTime类型日期值的分钟
Sec 待转换TDateTime类型日期值的秒数
MSec 待转换TDateTime类型日期值的毫秒
  • 返回值:TDateTime类型值。

  • 示例:

begin
  ShowMessage(TimeToStr(EncodeTime(15,33,35,999)));
end;
1
2
3
  • 运行结果:

15:33:35

# 9.26. EndOfAMonth

function EndOfAMonth(const AYear, AMonth: Word): TDateTime;
1
  • 该函数用于获得指定月份最后一天的最后可表示时刻。
部分 说明
AYear 年份
AMonth 月份
  • 返回值:函数返回参数指定年份的月份最后一天的最后可表示时刻。

  • 示例:

begin
  ShowMessage(DateTimeToStr(EndOfAMonth(2020,11)))
end;
1
2
3
  • 运行结果:

2020-11-30 23:59:59

# 9.27. EndOfAWeek

function EndOfAWeek(const AYear, AWeekOfYear, ADayOfWeek: Word): TDateTime;
1
  • 该函数获得指定年、周、周值的最后可表示时刻。
部分 说明
AYear 指定获取最后时刻的年份
AWeekOfYear 指定获取最后时刻的周
ADayOfWeek 指定获取最后时刻的周值
  • 返回值:返回参数指定年、周、周值的最后可表示时刻。

  • 示例:

begin
  ShowMessage(DateTimeToStr(EndOfAWeek(2020,23,3)));
end;
1
2
3
  • 运行结果:

2020-06-03 23:59:59

# 9.28. EndOfTheDay

function EndOfTheDay(const AValue: TDateTime): TDateTime;
1
  • 该函数获取与指定TDateTime类型表达式相同日期的最后可表示时刻。
部分 说明
AValue 日期时间类型表达式
  • 返回值:返回指定TDateTime类型表达式相同日期的最后可表示时刻。

  • 示例:

begin
  ShowMessage(DateTimeToStr(EndOfTheDay(StrToDate('2020-11-1'))));
end;
1
2
3
  • 运行结果:

2020-11-01 23:59:59

# 9.29. EndOfTheMonth

function EndOfTheMonth(const AValue: TDateTime): TDateTime;
1
  • 该函数用于获取参数指定的TDateTime日期时间表达式值所在的月份的最后时刻。
部分 说明
AValue TDateTime日期时间类型表达式
  • 返回值:返回参数指定月份最后一天的最后可表示时刻。

  • 示例:

Var
  MyEndDay: TDateTime;
begin
  MyEndDay := EndOfTheMonth(StrToDate('2020-11-1'));
  ShowMessage(DateTimeToStr(MyEndDay));
end;
1
2
3
4
5
6
  • 运行结果:

2020-11-30 23:59:59

# 9.30. EndOfTheWeek

function EndOfTheWeek(const AValue: TDateTime): TDateTime;
1
  • 该函数用于获取参数指定的TDateTime日期时间表达式值所在周的最后时刻。
部分 说明
AValue TDateTime日期时间类型表达式
  • 返回值:返回参数日期所在周最后一天的最后可表示时刻。

  • 示例:

Var
  MyEndDay: TDateTime;
begin
  MyEndDay := EndOfTheWeek(StrToDate('2020-11-1'));
  ShowMessage(DateTimeToStr(MyEndDay));
end;
1
2
3
4
5
6
  • 运行结果:

2020-11-01 23:59:59

# 9.31. EndOfTheYear

function EndOfTheYear(const AValue: TDateTime): TDateTime;
1
  • 该函数用于获取参数指定的TDateTime日期时间表达式值所在年份的最后时刻。
部分 说明
AValue TDateTime日期时间类型表达式
  • 返回值:返回参数日期所在年份最后一天的最后可表示时刻。

  • 示例:

Var
  MyEndDay: TDateTime;
begin
  MyEndDay := EndOfTheYear(StrToDate('2020-11-1'));
  ShowMessage(DateTimeToStr(MyEndDay));
end;
1
2
3
4
5
6
  • 运行结果:

2020-12-31 23:59:59

# 9.32. FormatDateTime

function FormatDateTime(const Format: String; DateTime: TDateTime): String;
1
  • 该函数利用Format参数给定的格式格式化DateTime参数给定的TDateTime值。
部分 说明
Format 格式化字符串的形式
DateTime TDateTime类型表达式
  • 返回值:按Format格式格式化的字符串。

  • 示例:

begin
  ShowMessage(FormatDateTime('''Today is ''yyyy-m-d',now));
  ShowMessage(FormatDateTime('''DateTime is ''hh:mm:ss',now));
  ShowMessage(FormatDateTime('''Today is ''m-d-yyyy',now));  
end;
1
2
3
4
5
  • 运行结果:

Today is 2020-01-01 DateTime is 13:25:35 Today is 01-01-2020

# 9.33. GetTime

function GetTime: TDateTime;
1
  • 该函数用于返回当前系统时间。

  • 返回值:TDateTime类型值。

  • 示例:

begin
  ShowMessage(TimeToStr(GetTime()));
end;
1
2
3
  • 运行结果:显示当前的系统时间。

# 9.34. HourOfTheDay

function HourOfTheDay(const AValue: TDateTime): Word;
1
  • 该函数获得参数给定的日期时间类型表达式的小数部分。
部分 说明
AValue TDateTime日期时间类型表达式
  • 返回值:返回能表示参数给定的TDateTime日期时间类型表达式小时部分的Word类型数。

  • 示例:

begin
  ShowMessage(IntToStr(HourOfTheDay(StrToDateTime('2020-03-10 14:36:55'))));
end;
1
2
3
  • 运行结果:

14

# 9.35. HourOfTheMonth

function HourOfTheMonth(const AValue: TDateTime): Word;
1
  • 该函数用于获得参数给定日期时间类型表达式与对应月份第一天零时之间已流逝的小时数。
部分 说明
AValue TDateTime类型表达式
  • 返回值:返回参数给定日期时间类型表达式与对应月份第一天零时之间已流逝的小时数的Word类型值。

  • 示例:

begin
  ShowMessage(IntToStr(HourOfTheMonth(StrToDateTime('2020-03-10 14:36:55'))));
end;
1
2
3
  • 运行结果:

230

# 9.36. HourOfTheWeek

function HourOfTheWeek(const AValue: TDateTime): Word;
1
  • 该函数获得参数给定日期时间类型表达式与对应周期的星期一零时之间已流逝的小时数。
部分 说明
AValue 待转换的小时数的日期和时间
  • 返回值:返回一个word值。

  • 示例:

begin
  ShowMessage(IntToStr(HourOfTheWeek(StrToDateTime('2020-03-10 14:36:55'))));
end;
1
2
3
  • 运行结果:

38

# 9.37. HourOfTheYear

function HourOfTheYear(const AValue: TDateTime): Word;
1
  • 该函数获得参数当前时间到对应年份1月1日已流逝的小时数。
部分 说明
AValue 待转换的小时数的日期和时间
  • 返回值:返回参数当前时间到对应年份1月1日已流逝的小时数。

  • 示例:

begin
  ShowMessage(IntToStr(HourOfTheYear(StrToDateTime('2020-03-10 14:36:55'))));
end;
1
2
3
  • 运行结果:

1670

# 9.38. HoursBetween

function HoursBetween(const ANow, AThen: TDateTime): Int64;
1
  • 该函数用于获取指定的两个TDateTime类型日期时间表达式之间相差的小时数。
部分 说明
ANow 待比较的日期时间
AThen 待比较的日期时间
  • 返回值:返回指定的两个TDateTime类型日期时间表达式之间相差的小时数的Int64类型值。

  • 示例:

begin
  ShowMessage(IntToStr(HoursBetween(StrToDateTime('2020-03-10 14:36:55'),StrToDateTime('2020-11-01 13:35:16'))));
end;
1
2
3
  • 运行结果:

5662

# 9.39. HourSpan

function HourSpan(const ANow, AThen: TDateTime): Double;
1
  • 该函数用于获取指定的两个TDateTime值之间相差的小时数。
部分 说明
ANow 待比较的日期时间
AThen 待比较的日期时间
  • 返回值:返回指定的两个TDateTime类型日期时间表达式之间相差的小时数的Double类型值。

  • 示例:

begin
  ShowMessage(FloatToStr(HourSpan(StrToDateTime('2020-03-10 14:36:55'),StrToDateTime('2020-11-01 13:35:16'))));
end;
1
2
3
  • 运行结果:

5662.972499999992

# 9.40. IncDay

function IncDay(const AValue: TDateTime; const ANumberOfDays: Integer = 1): TDateTime;
1
  • 根据指定的天数来增加或减少TDateTime类型的日。
部分 说明
AValue TDateTime类型日期时间表达式
ANumberOfDays 待增加或减少日的数量
  • 返回值:返回该变后的TDateTime类型值。

  • 示例:

begin
  ShowMessage(DateToStr(IncDay(StrToDate('2020-11-1'),5)));
end;
1
2
3
  • 运行结果:

2020-11-06

# 9.41. IncHour

function IncHour(const AValue: TDateTime; const ANumberOfHours: Int64 = 1): TDateTime;
1
  • 该函数根据参数给定的值来增加或减少TDateTime值的小时。
部分 说明
AValue TDateTime类型日期的表达式
ANumberOfHours 待增加或减少小时的数量
  • 返回值:返回改变后的TDateTime类型值。

  • 示例:

Var  
  ADate: TDateTime;
begin
  ADate := IncHour(StrToDateTime('2020-10-01 12:00:00'),5);
  ShowMessage(DateTimeToStr(ADate));
  ADate := IncHour(StrToDateTime('2020-10-01 13:00:00'),-1);
  ShowMessage(DateTimeToStr(ADate)); 
end;
1
2
3
4
5
6
7
8
  • 运行结果:

2020-10-01 17:00:00 2020-10-01 12:00:00

# 9.42. IncMilliSecond

function IncMilliSecond(const AValue: TDateTime; const ANumberOfMilliSeconds: Int64 = 1): TDateTime;
1
  • 该函数根据参数给定的值来增加或减少TDateTime值的毫秒。
部分 说明
AValue TDateTime类型日期的表达式
ANumberOfMilliSeconds 待增加或减少毫秒的数量
  • 返回值:返回改变后的TDateTime类型值。

  • 示例:

Var  
  ADate: TDateTime;
begin
  ADate := IncMilliSecond(StrToDateTime('2020-10-01 12:00:00'),5000);
  ShowMessage(DateTimeToStr(ADate));
  ADate := IncMilliSecond(StrToDateTime('2020-10-01 13:00:00'),-3000);
  ShowMessage(DateTimeToStr(ADate));
end;
1
2
3
4
5
6
7
8
  • 运行结果:

2020-10-01 12:00:05 2020-10-01 12:59:57

# 9.43. IncMinute

function IncMinute(const AValue: TDateTime; const ANumberOfMinutes: Int64 = 1): TDateTime;
1
  • 该函数根据参数给定的值来增加或减少TDateTime值的分钟。
部分 说明
AValue TDateTime类型日期的表达式
ANumberOfMinutes 待增加或减少分钟的数量
  • 返回值:返回改变后的TDateTime类型值。

  • 示例:

Var  
  ADate: TDateTime;
begin
  ADate := IncMinute(StrToDateTime('2020-10-01 12:00:00'),5);
  ShowMessage(DateTimeToStr(ADate));
  ADate := IncMinute(StrToDateTime('2020-10-01 13:00:00'),-3);
  ShowMessage(DateTimeToStr(ADate));
end;
1
2
3
4
5
6
7
8
  • 运行结果:

2020-10-01 12:05:00 2020-10-01 12:57:00

# 9.44. IncMonth

function IncMonth(const Date: TDateTime; NumberOfMonths: Integer=1): TDateTime;
1
  • 该函数根据参数给定的值来增加或减少TDateTime值的月份。
部分 说明
Date TDateTime类型日期时间的表达式
NumberOfMonths 待增加或减少月的数量
  • 返回值:返回改变后的TDateTime类型值。

  • 示例:

begin
  ShowMessage(DateToStr(IncMonth(StrToDateTime('2020-11-01'),1)));
  ShowMessage(DateToStr(IncMonth(StrToDateTime('2020-11-01'),3)));
  ShowMessage(DateToStr(IncMonth(StrToDateTime('2020-11-01'),-2)));
end;
1
2
3
4
5
  • 运行结果:

2020-12-01 2021-02-01 2020-09-01

# 9.45. IncSecond

function IncSecond(const Date: TDateTime; NumberOfSeconds: Integer=1): TDateTime;
1
  • 该函数根据参数给定的值来增加或减少TDateTime值的秒数。
部分 说明
Date TDateTime类型日期时间的表达式
NumberOfSeconds 待增加或减少秒的数量
  • 返回值:返回改变后的TDateTime类型值。

  • 示例:

Var  
  ADate: TDateTime;
begin
  ADate := IncSecond(StrToDateTime('2020-10-01 12:00:00'),5);
  ShowMessage(DateTimeToStr(ADate));
  ADate := IncSecond(StrToDateTime('2020-10-01 13:00:00'),-3);
  ShowMessage(DateTimeToStr(ADate));
end;
1
2
3
4
5
6
7
8
  • 运行结果:

2020-10-01 12:00:05 2020-10-01 12:59:57

# 9.46. IncWeek

function IncWeek(const AValue: TDateTime; NumberOfWeeks: Integer=1): TDateTime;
1
  • 该函数根据参数给定的值来增加或减少TDateTime值的周数。
部分 说明
AValue TDateTime类型日期时间的表达式
NumberOfWeeks 待增加或减少周的数量
  • 返回值:返回改变后的TDateTime类型值。

  • 示例:

Var  
  ADate: TDateTime;
begin
  ADate := IncWeek(StrToDate('2020-10-01'),2);
  ShowMessage(DateToStr(ADate));
  ADate := IncWeek(StrToDate('2020-10-01'),-2);
  ShowMessage(DateToStr(ADate));
end;
1
2
3
4
5
6
7
8
  • 运行结果:

2020-10-15 2020-09-17

# 9.47. IncYear

function IncYear(const AValue: TDateTime; const ANumberOfYears: Integer = 1):TDateTime;
1
  • 该函数根据参数给定的值来增加或减少TDateTime值的年份。
部分 说明
AValue TDateTime类型日期时间的表达式
NumberOfYears 待增加或减少年份的数量
  • 返回值:返回改变后的TDateTime类型值。

  • 示例:

Var  
  ADate: TDateTime;
begin
  ADate := IncYear(StrToDate('2020-10-01'),2);
  ShowMessage(DateToStr(ADate));
  ADate := IncYear(StrToDate('2020-10-01'),-2);
  ShowMessage(DateToStr(ADate));
end;
1
2
3
4
5
6
7
8
  • 运行结果:

2022-10-01 2018-10-01

# 9.48. IsInLepYear

function IsInLeapYear(const AValue: TDateTime): Boolean;
1
  • 判断参数给定的日期所在的年份是不是闰年。
部分 说明
AValue TDateTime类型日期时间的表达式
  • 返回值:如果是闰年返回True,否则返回False。

  • 示例:

begin
  if IsInLeapYear(date()) then
    ShowMessage('今年是闰年')
  else
    ShowMessage('今年不是闰年');
end;
1
2
3
4
5
6
  • 运行结果:显示今年是否为闰年,例如本示例制作年份为2020年,该年份内执行该代码显示今年为闰年。

# 9.49. IsLeapYear

function IsLeapYear(Year: Word): Boolean
1
  • 该函数用于检验所给的年份是否为闰年。
部分 说明
Year 待检验的年份
  • 返回值:如果是闰年则返回True,否则返回False。

  • 示例:

var
  BoolIs: Boolean;
  YearIs: Integer;
begin
  YearIs := 2000;
  while YearIs < 2005 Do
  begin
    BoolIs := IsLeapYear(YearIs);
    if BoolIs Then
      ShowMessage('闰年' + '(' + IntToStr(YearIs) + ')')
    else
      ShowMessage('平年' + '(' + IntToStr(YearIs) + ')');
    YearIs := YearIs + 1;
  End;
end;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
  • 运行结果:

闰年(2000) 平年(2001) 平年(2002) 平年(2003) 闰年(2004)

# 9.50. IsPM

function IsPM(const AValue: TDateTime): Boolean;
1
  • 检验参数的时间是否为下午。
部分 说明
AValue TDateTime类型日期时间的表达式
  • 返回值:如果给定的TDateTime值的时间是下午函数返回True,否则返回False。

  • 示例:

begin
  ShowMessage(BoolToStr(IsPM(StrToDateTime('2020-11-01 12:00:00')))); 
  ShowMessage(BoolToStr(IsPM(StrToDateTime('2020-11-01 11:59:59')))); 
end;
1
2
3
4
  • 运行结果:

-1(表示为True) 0(表示为False)

# 9.51. IsSameDay

function IsSameDay(const AValue, ABasis: TDateTime): Boolean;
1
部分 说明
AValue TDateTime类型日期时间的表达式
ABasis TDateTime类型日期时间的表达式
  • 返回值:如果两参数表示同一日期函数返回True,否则返回False。

  • 示例:

begin
  if IsSameDay(StrToDateTime('2020-2-24'), StrToDateTime('2020-4-24 16:50')) then
    ShowMessage('相同')
  else
    ShowMessage('不同');
end;
1
2
3
4
5
6
  • 运行结果:

不同

# 9.52. IsToday

function IsToday(const AValue: TDateTime): Boolean;
1
  • 该函数检测发生的日期与系统日期是否相同。
部分 说明
AValue TDateTime类型日期时间的表达式
  • 返回值:如果参数给定的日期与系统当前日期相同返回True,否则返回False。

  • 示例:

begin
  if IsToday(StrToDateTime('2020-2-24')) then
    ShowMessage('是今天')
  else
    ShowMessage('不是今天');
end;
1
2
3
4
5
6
  • 运行结果:

不是今天

# 9.53. IsValidDate

function IsValidDate(const AYear, AMonth, ADay: Word): Boolean;
1
  • 该函数用于检验给定的年、月、日是否合乎规范。
部分 说明
AYear 年
AMonth 月
ADay 日
  • 返回值:如果待检验的年、月、日合法则返回True,否则返回False。

  • 示例:

begin
  ShowMessage(BoolToStr(IsValidDate(2020,5,30)));
  ShowMessage(BoolToStr(IsValidDate(2020,4,31)));
  ShowMessage(BoolToStr(IsValidDate(0000,4,30)));
end;
1
2
3
4
5
  • 运行结果:

-1 0 0

# 9.54. IsValidDateDay

function IsValidDateDay(const AYear, ADayOfYear: Word): Boolean;
1
  • 检查参数给定的天数是不是再指定年份的总天数范围之内。
部分 说明
AYear 年
ADayOfYear 待检验的天数
  • 返回值:若参数给定的天数在指定年份的总天数范围之内返回True,否则返回False。

  • 示例:

begin
  ShowMessage(BoolToStr(IsValidDateDay(2020,367)));
  ShowMessage(BoolToStr(IsValidDateday(2020,0)));
  ShowMessage(BoolToStr(IsValidDate(2020,4)));
end;
1
2
3
4
5
  • 运行结果:

0 0 -1

# 9.55. IsValidDateMonthWeek

function IsValidDateMonthWeek(const AYear, AMonth, AWeekOfMonth, ADayOfWeek: Word): Boolean;
1
  • 该函数是检验参数给定的年份、月份、该月份第几周和周值的合法性。
部分 说明
AYear 年份
AMonth 月份
AWeekOfMonth 周数
ADayOfWeek 星期
  • 返回值:如果给定参数合法则返回True,否则返回False。

  • 示例:

begin
  ShowMessage(BoolToStr(IsValidDateMonthWeek(2020,5,2,7)));
  ShowMessage(BoolToStr(IsValidDateMonthWeek(2020,13,2,7)));
  ShowMessage(BoolToStr(IsValidDateMonthWeek(2020,5,6,7)));
end;
1
2
3
4
5
  • 运行结果:

-1 0 0

# 9.56. IsValidDateTime

function IsValidDateTime(const AYear, AMonth, ADay, AHour, AMinute, ASecond, AMilliSecond: Word): Boolean;
1
  • 检验参数给定的年、月、日、小时、分钟、秒和毫秒的合法性。
部分 说明
AYear 年份
AMonth 月份
ADay 待检验的日
AHour 待检验的小时
AMinute 分钟
ASecond 秒
AMilliSecond 毫秒
  • 返回值:如果所有被检验的值都是合法函数返回True,否则返回False。

  • 示例:

begin
  ShowMessage(BoolToStr(IsValidDateTime(2020,06,20,23,22,25,0)));
  ShowMessage(BoolToStr(IsValidDateTime(2020,13,20,23,23,24,0)));
  ShowMessage(BoolToStr(IsValidDateTime(2020,12,13,34,12,32,0)));
end;
1
2
3
4
5
  • 运行结果:

-1 0 0

# 9.57. IsValidDateWeek

function IsValidDateWeek(const AYear, AWeekOfYear, ADayOfWeek: Word): Boolean;
1
  • 检验参数给定的年份、周数,合法性。
部分 说明
AYear 年份
AWeekOfYear 周数
ADayOfWeek 周值
  • 返回值:如果被检验值合法,函数返回True,否则返回False。

  • 示例:

begin
  ShowMessage(BoolToStr(IsValidDateWeek(2020,50,5)));
  ShowMessage(BoolToStr(IsValidDateWeek(2020,0,5)));
  ShowMessage(BoolToStr(IsValidDateWeek(2020,53,6)));
end;
1
2
3
4
5
  • 运行结果:

-1 0 -1

# 9.58. IsValidTime

function IsValidTime(const AHour, AMinute, ASecond, AMilliSecond: Word): Boolean;
1
  • 检验参数给定的小时、分钟、秒、和毫秒的合法性。
部分 说明
AHour 待检验的小时
AMinute 待检验的分钟
ASecond 待检验的秒
AMilliSecond 待检验的毫秒
  • 返回值:如果被检验值合法,函数返回True,否则返回False。

  • 示例:

begin
  ShowMessage(BoolToStr(IsValidTime(20,35,25,0)));
end;
1
2
3
  • 运行结果:

-1

# 9.59. MilliSecondOf

function MilliSecondOf(const AValue: TDateTime): Word;
1
  • 该函数获得参数给定日期时间类型表达式的毫秒。
部分 说明
AValue 日期时间类型表达式
  • 返回值:返回能代表参数给定的日期时间类型表达式毫秒的Word类型值。

  • 示例:

Var 
  MilliSecond: Word;
begin
  MilliSecond := MilliSecondOf(Now);
  ShowMessage(IntToStr(MilliSecond));
end;
1
2
3
4
5
6

  执行上述代码,得到当前系统时间的毫秒值。

# 9.60. MilliSecondOfTheDay

function MilliSecondOfTheDay(const AValue: TDateTime): Cardinal;
1
  • 该函数获得TDateTime参数所在天已流逝的毫秒数。
部分 说明
AValue 日期时间类型表达式
  • 返回值:返回已流逝的毫秒数。

  • 示例:

var
  MilCount: Longword;
begin
  MilCount := MilliSecondOfTheDay(Now);
  ShowMessage(IntToStr(Milcount));
end;
1
2
3
4
5
6
  • 运行结果:显示当天已流逝的毫秒数。

# 9.61. MilliSecondOfTheHour

function MilliSecondOfTheHour(const AValue: TDateTime): Cardinal;
1
  • 该函数用于获得所在小时已流逝的毫秒数。
部分 说明
AValue 日期时间类型表达式
  • 返回值:返回已流逝的毫秒数。

  • 示例:

var
  MilCount: Longword;
begin
  MilCount := MilliSecondOfTheHour(Now);
  ShowMessage(IntToStr(Milcount));
end;
1
2
3
4
5
6
  • 运行结果:显示当前所在小时已流逝的毫秒数。

# 9.62. MilliSecondOfTheMinute

function MilliSecondOfTheMinute(const AValue: TDateTime): Cardinal;
1
  • 该函数用于获得参数指定的TDateTime值,与它同一分钟的起点之间已流逝的毫秒数。
部分 说明
AValue 日期时间类型表达式
  • 返回值:返回已流逝的毫秒数。

  • 示例:

var
  MilCount: Longword;
begin
  MilCount := MilliSecondOfTheMinute(Now);
  ShowMessage(IntToStr(Milcount));
end;
1
2
3
4
5
6
  • 运行结果:显示当前分钟已流逝的毫秒数。

# 9.63. MilliSecondOfTheMonth

function MilliSecondOfTheMonth(const AValue: TDateTime): Cardinal;
1
  • 该函数用于获取参数指定的TDateTime值与它同一月的起点之间已流逝的毫秒数。
部分 说明
AValue 日期时间类型表达式
  • 返回值:返回已流逝的毫秒数。

  • 示例:

var
  MilCount: Longword;
begin
  MilCount := MilliSecondOfTheMonth(Now);
  ShowMessage(IntToStr(Milcount));
end;
1
2
3
4
5
6
  • 运行结果:显示当前时刻所在月份已流逝的毫秒数。

# 9.64. MilliSecondOfTheSecond

function MilliSecondOfTheSecond(const AValue: TDateTime): Word;
1
  • 该函数用于获得参数指定的TDateTime值与它同一秒的起点之间已流逝的毫秒数。
部分 说明
AValue 日期时间类型表达式
  • 返回值:返回已流逝的毫秒数。

  • 示例:

var
  MilCount: Longword;
begin
  MilCount := MilliSecondOfTheSecond(Now);
  ShowMessage(IntToStr(Milcount));
end;
1
2
3
4
5
6
  • 运行结果:显示当前秒数中已流逝的毫秒数。

# 9.65. MilliSecondsBetween

function MilliSecondsBetween(const ANow, AThen: TDateTime): Int64;
1
  • 该函数获取参数指定的两个日期时间类型表达式之间相差的毫秒数。
部分 说明
ANow 待比较的日期时间类型表达式
AThen 带比较的日期时间类型表达式
  • 返回值:返回两日期时间类型表达式相差的毫秒数(64位整型值)。

  • 示例:

begin
  ShowMessage(IntToStr(MilliSecondsBetween(Now,Now + 1)));
end;
1
2
3
  • 运行结果:该段代码用于计算一天有多少毫秒数。

86400000

# 9.66. MinuteOf

function MinuteOf(const AValue: TDateTime):Word;
1
  • 该函数获取指定的日期时间表达式时钟的分钟数。
部分 说明
AValue 日期时间类型表达式
  • 返回值:返回指定的日期时间表达式时钟的分钟数(Word类型值)。

  • 示例:

begin
  ShowMessage(IntToStr(MinuteOf(Now)));
end;
1
2
3

  该段代码执行后,消息对话框显示系统当前分钟。

# 9.67. MinuteOfTheHour

function MinuteOfTheHour(const AValue: TDateTime): Word;
1
  • 该函数用于指定TDateTime值与它同一小时的起点之间已流逝的分钟数。
部分 说明
AValue 日期时间类型表达式
  • 返回值:返回已流逝的分钟数。

  • 示例:

begin
  ShowMessage(IntToStr(MinuteOfTheHour(StrToDateTime('2020-11-01 13:24:00'))));
end;
1
2
3
  • 运行结果:

24

# 9.68. MinuteOfTheMonth

function MinuteOfTheMonth(const AValue: TDateTime): Word;
1
  • 该函数用于获得参数指定的TDateTime值与它同一月的起点之间已经流逝的分钟数。
部分 说明
AValue 日期时间类型表达式
  • 返回值:返回已流逝的分钟数。

  • 示例:

begin
  ShowMessage(IntToStr(MinuteOfTheMonth(StrToDateTime('2020-11-02 13:24:00'))));
end;
1
2
3
  • 运行结果:

2244

# 9.69. MinuteOfTheWeek

function MinuteOfTheWeek(const AValue: TDateTime): Word;
1
  • 该函数用于获得参数指定的TDateTime值与它同一周的起点之间已经流逝的分钟数。
部分 说明
AValue 日期时间类型表达式
  • 返回值:返回已流逝的分钟数。

  • 示例:

begin
  ShowMessage(IntToStr(MinuteOfTheWeek(StrToDateTime('2020-11-04 13:24:00'))));
end;
1
2
3
  • 运行结果:

3684

# 9.70. MinuteOfTheYear

function MinuteOfTheYear(const AValue: TDateTime): Cardinal;
1
  • 该函数用于获得参数指定的TDateTime值与它同一年的起点之间已经流逝的分钟数。
部分 说明
AValue 日期时间类型表达式
  • 返回值:返回已流逝的分钟数。

  • 示例:

begin
  ShowMessage(IntToStr(MinuteOfTheYear(StrToDateTime('2020-11-04 13:24:00'))));
end;
1
2
3
  • 运行结果:

444324

# 9.71. MinutesBetween

function MinutesBetween(const ANow, AThen: TDateTime): Int64;
1
  • 该函数获得指定TDateTime值之间相差的分钟数。
部分 说明
ANow 日期时间表达式
AThen 日期时间表达式
  • 返回值:返回参数给定的两个TDateTime值之间相差的分钟数的64位整型。

  • 示例:

begin
  ShowMessage(IntToStr(MinutesBetween(Now,StrToDateTime('2020-11-1 3:51'))));
end;
1
2
3
  • 运行结果:返回当前时间与给定时间相差的分钟数。

# 9.72. MinuteSpan

function MinuteSpan(const ANow, AThen: TDateTime): Double;
1
  • 该函数获得参数给定的两个TDateTime类型值相差的分钟数。返回的数据类型为double。
部分 说明
ANow 日期时间表达式
AThen 日期时间表达式
  • 返回值:返回参数给定的两个TDateTime值之间相差的分钟数的Double类型。

  • 示例:

begin
  ShowMessage(FloatToStr(MinuteSpan(Now,StrToDateTime('2020-11-1 3:51'))));
end;
1
2
3
  • 运行结果:返回当前时间与给定时间相差的分钟数。

# 9.73. MonthOf

function MonthOf(const AValue: TDateTime):Word;
1
  • 该函数获得参数给定日期时间类型表达式的月份。
部分 说明
AValue 日期时间类型表达式
  • 返回值:返回能代表参数给定的日期时间类型表达式月份的Word类型值。

  • 示例:

var
  Mon: Word;
begin
  Mon := MonthOf(Now);
  ShowMessage(IntToStr(Mon));
end;
1
2
3
4
5
6

  执行上述代码,显示系统当前月份。

# 9.74. MonthOfTheYear

function MonthOfTheYear(const AValue: TDateTime): Word;
1
  • 该函数获得参数给定日期时间类型表达式的月份。
部分 说明
AValue 日期时间类型表达式
  • 返回值:返回能代表参数给定的日期时间类型表达式月份的word类型值。

  • 示例:

Var
  Mon: Word;
begin
  Mon := MonthOfTheYear(Now);
  ShowMessage(IntToStr(Mon));
end;
1
2
3
4
5
6
  • 运行结果:显示系统当前月份。

# 9.75. MonthsBetween

function MonthsBetween(const ANow, AThen: TDateTime): Integer;
1
部分 说明
ANow 待比较的日期时间类型表达式
AThen 待比较的日期时间类型表达式
  • 返回值:返回参数给定的两日期时间类型表达式之间相差的整月数的Word类型值。

  • 示例:

begin
  ShowMessage(IntToStr(MonthsBetween(Date,EndOfTheYear(now))));
end;
1
2
3
  • 运行结果:显示当前月份与年末月份的差值。

# 9.76. MonthSpan

function MonthSpan(const ANow, AThen: TDateTime): Double;
1
  • 该函数获取给定的两日期时间类型表达式之间相差的月数。
部分 说明
ANow 待比较的日期时间类型表达式
AThen 待比较的日期时间类型表达式
  • 返回值:返回参数给定的两日期时间类型表达式之间相差月数的Double类型值。

  • 示例:

begin
  ShowMessage(FloatToStr(MonthSpan(Date,EndOfTheYear(now))));
end;
1
2
3
  • 运行结果:显示当前日期与年末日期的月份相差浮点数值。

# 9.77. Now

function Now: TDateTime;
1
  • 该函数用于获取系统当前的日期和时间。

  • 返回值:返回系统当前的日期和时间。

  • 示例:

begin
  ShowMessage(DateTimeToStr(now));
  ShowMessage(DateTimeToStr(Now()));
end;
1
2
3
4
  • 运行结果:

2020-01-01 13:25:35 2020-01-01 13:35:37

# 9.78. NthDayOfWeek

function NthDayOfWeek(const AValue: TDateTime): Word;
1
  • 获得参数指定日期时间表达式所在月份的周的序号。
部分 说明
AValue 日期时间类型表达式
  • 返回值:返回序号值。

  • 示例:

var
  MilCount: Longword;
begin
  MilCount := NthDayOfWeek(StrToDateTime('2020-11-1 11:00:00'));
  ShowMessage(IntToStr(Milcount));
end;
1
2
3
4
5
6
  • 运行结果:

1

# 9.79. RecodeDate

function RecodeDate(const AValue: TDateTime; const AYear, AMonth, ADay: Word): TDateTime;
1
  • 函数把参数指定的日期替换为参数Year、Month、Day所对应的日期。
部分 说明
AValue 被替换的日期时间类型表达式
AYear 替换后的年份
AMonth 替换后的月份
ADay 替换后的日
  • 返回值:返回变换后的日期。

  • 示例:

begin
  ShowMessage(DateToStr(RecodeDate(Now,2020,07,07)));
end;
1
2
3

# 9.80. RecodeDateTime

function RecodeDateTime(const AValue: TDateTime; const AYear, AMonth, ADay, AHour, AMinute, ASecond, AMilliSecond: Word): TDateTime;
1
  • 该函数把参数指定的日期时间类型表达式替换为参数给定的年、月、日、小时、分钟、秒和毫秒所对应的日期时间值。
部分 说明
AValue 被替换后的日期时间类型表达式
AYear 替换后的年份
AMonth 替换后的月份
ADay 替换后的日
AHour 替换后的小时
AMinute 替换后的分钟
ASecond 替换后的秒钟
AMilliSecond 替换后的毫秒
  • 返回值:返回变换后的日期时间类型值。

  • 示例:

begin
  ShowMessage(DateTimeToStr(RecodeDateTime(Now,2020,07,07,12,25,25,0)));
end;
1
2
3
  • 运行结果:

2020-07-07 12:25:25

# 9.81. RecodeDay

function RecodeDay(const AValue: TDateTime; const ADay: Word): TDateTime;
1
  • 把参数指定的日期时间类型表达式替换为参数给定日所对应的日期时间值。
部分 说明
AValue 被替换的日期时间类型表达式
ADay 替换后的日
  • 返回值:返回变换后的日期时间类型值。

  • 示例:

begin
  ShowMessage(DateToStr(RecodeDay(Now,1)));
end;
1
2
3
  • 运行结果:将当前日期的日改为1日。

# 9.82. RecodeHour

function RecodeHour(const AValue: TDateTime; const AHour: Word): TDateTime;
1
  • 该函数将指定时间中的小时替换为另一个指定的小时。
部分 说明
AValue 被替换的日期时间类型表达式
AHour 替换的小时
  • 返回值:返回修改小时后的时间。

  • 示例:

begin
  ShowMessage(DateTimeToStr(RecodeHour(StrToDateTime('2020-11-1 12:00:00'),6)));
end;
1
2
3
  • 运行结果:

2020-11-1 6:00:00

# 9.83. RecodeMilliSecond

function RecodeMilliSecond(const AValue: TDateTime; const AMilliSecond: Word): TDateTime;
1
  • 该函数将指定时间中的毫秒替换成指定的数值。
部分 说明
AValue 被替换的日期时间类型表达式
AMilliSeconds 替换的毫秒值
  • 返回值:返回替换毫秒后的时间。

  • 示例:

var
  AValue: TDateTime;
begin
  AValue := RecodeMilliSecond(now,100);
  ShowMessage(FormatDateTime('yyyy-mm-dd hh:mm:ss:zzz',AValue));  
end;
1
2
3
4
5
6
  • 运行结果:运行后返回参数指定的值0-999。

# 9.84. RecodeMinute

function RecodeMinute(const AValue: TDateTime; const AMinute: Word): TDateTime;
1
  • 该函数将指定时间中的分替换称为特定数值。
部分 说明
AValue 被替换的日期时间类型表达式
AMinute 返回被替换分钟的时间
  • 返回值:返回替换后的时间。

  • 示例:

var
  AValue: TDateTime;
begin
  AValue := RecodeMinute(now,10);
  ShowMessage(FormatDateTime('yyyy-mm-dd hh:mm:ss',AValue));  
end;
1
2
3
4
5
6
  • 运行结果:运行后返回参数特定的值(0-59)。

# 9.85. RecodeSecond

function RecodeSecond(const AValue: TDateTime; const ASecond: Word): TDateTime;
1
  • 该函数将指定时间的秒替换为指定的数值。
部分 说明
AValue 被替换的日期时间类型表达式
ASecond 替换秒指定的数值
  • 返回值:返回替换秒后的时间。

  • 示例:

var
  AValue: TDateTime;
begin
  AValue := RecodeSecond(now,10);
  ShowMessage(FormatDateTime('yyyy-mm-dd hh:mm:ss',AValue));  
end;
1
2
3
4
5
6
  • 运行结果:运行后返回参数的特定的值(0-59)。

# 9.86. RecodeTime

function RecodeTime(const AValue: TDateTime; const AHour, AMinute, ASecond, AMilliSecond: Word): TDateTime;
1
  • 该函数将指定时间的时、分、秒和毫秒替换为指定的数值。
部分 说明
AValue 被替换的日期时间类型表达式
AHour,AMinute,ASecond 替换时、分、秒和毫秒的指定值
  • 返回值:返回替换后的时间。

  • 示例:

var
  AValue: TDateTime;
begin
  AValue := RecodeTime(now,11,12,13,144);
  ShowMessage(FormatDateTime('yyyy-mm-dd hh:mm:ss:zzz',AValue));  
end;
1
2
3
4
5
6
  • 运行结果:函数运行后,返回一个更改当前时间的时钟为11、分钟为12、秒钟为13、毫秒为14的值。

# 9.87. RecodeYear

function RecodeYear(const AValue: TDateTime; const AYear: Word): TDateTime;
1
  • 该函数用于将指定时间的年份替换为指定的数值。
部分 说明
AValue 被替换的日期时间类型表达式
AYear 替换年份的指定值
  • 返回值:返回替换后的时间。

  • 示例:

var
  AValue: TDateTime;
begin
  AValue := RecodeYear(now,2021);
  ShowMessage(FormatDateTime('yyyy-mm-dd hh:mm:ss:zzz',AValue));  
end;

1
2
3
4
5
6
7
  • 运行结果:函数运行后,返回一个更改当前时间的年份为2021年的值。

# 9.88. SameDate

function SameDate(const A, B: TDateTime): Boolean;
1
  • 该函数比较A和B两个参数指定的TDateTime值是否表示相同的日期,不包括时间部分。
部分 说明
A,B 待比较的两个日期
  • 返回值:如果相同返回True,否则返回False。

  • 示例:

var
  ADate: TDateTime;
  BDate: TDateTime;
begin
  ADate := StrToDateTime('2020-11-1');
  BDate := StrToDateTime('2020-11-2');
  if SameDate(ADate,BDate) then
    ShowMessage('Same')
  else
    ShowMessage('not Same');
end;
1
2
3
4
5
6
7
8
9
10
11
  • 运行结果:

not Same

# 9.89. SameDateTime

function SameDateTime(const A, B: TDateTime): Boolean;
1
  • 该函数比较两个时间是否相同。
部分 说明
A,B 待比较的两个时间
  • 返回值:返回是否相同,如果相同返回True,否则返回False。

  • 示例:

var
  ADate: TDateTime;
  BDate: TDateTime;
begin
  ADate := StrToDateTime('2020-11-1 15:00:00');
  BDate := StrToDateTime('2020-11-1 15:00:01');
  if SameDateTime(ADate,BDate) then
    ShowMessage('Same')
  else
    ShowMessage('not Same');
end;
1
2
3
4
5
6
7
8
9
10
11
  • 运行结果:

not Same

# 9.90. SameTime

function SameTime(const A, B: TDateTime): Boolean;
1
  • 该函数比较两个时间是否相等,不包括日期部分。
部分 说明
A,B 待比较的两个时间
  • 返回值:比较两个时间段是否相等,如果相等返回True,否咋返回False。

  • 示例**

var
  ADate: TDateTime;
  BDate: TDateTime;
begin
  ADate := StrToDateTime('2020-11-1 15:00:00');
  BDate := StrToDateTime('2020-11-2 15:00:00');
  if SameTime(ADate,BDate) then
    ShowMessage('Same')
  else
    ShowMessage('not Same');
end;
1
2
3
4
5
6
7
8
9
10
11
  • 运行结果:

Same

# 9.91. SecondOf

function SecondOf(const AValue: TDateTime;): Word;
1
  • 该函数返回指定时间中表示的秒数。
部分 说明
AValue 待操作的TDateTime类型的时间值
  • 返回值:返回取得的秒数。

  • 示例:

begin
  ShowMessage(IntToStr(SecondOf(Now)));
end;
1
2
3

  执行上述代码后,显示当前系统的秒数。

# 9.92. SecondOfTheDay

function SecondOfTheDay(const AValue: TDateTime): Cardinal;
1
  • 该函数用于返回指定时间与同一天00:00:00之间已流逝的秒数。
部分 说明
AValue 指定计算的时间
  • 返回值:返回流逝的秒数。

  • 示例:

var
  ADate: TDateTime;
  SecOf: Word;
begin
  ADate := Now();
  SecOf := SecondOftheDay(ADate);
  ShowMessage(IntToStr(SecOf));
end;
1
2
3
4
5
6
7
8
  • 运行结果:运行后返回流逝的秒数。

# 9.93. SecondOfTheHour

function SecondOfTheHour(const AValue: TDateTime): Word;
1
  • 该函数用于返回指定时间与同一天同一时的起始时间之间流逝的秒数。
部分 说明
AValue 指定计算的时间
  • 返回值:返回流逝的小时数。

  • 示例:

var
  ADate: TDateTime;
  HOurOf: Word;
begin
  ADate := Now();
  HOurOf := SecondOftheHour(ADate);
  ShowMessage(IntToStr(HOurOf));
end;
1
2
3
4
5
6
7
8
  • 运行结果:显示当前小时已流逝的秒数。

# 9.94. SecondOfTheMinute

function SecondOfTheMinute(const AValue: TDateTime): Word;
1
  • 该函数返回指定时间与同一天同一分钟的起始时间之间流逝的秒数。
部分 说明
AValue 指定计算的时间
  • 返回值:返回流逝的秒数。

  • 示例:

var
  ADate: TDateTime;
  HOurOf: Word;
begin
  ADate := Now();
  HOurOf := SecondOftheMinute(ADate);
  ShowMessage(IntToStr(HOurOf));
end;
1
2
3
4
5
6
7
8
  • 返回值:返回流逝的秒数。

# 9.95. SecondOfTheMonth

function SecondOfTheMonth(const AValue: TDateTime): Cardinal;
1
  • 该函数返回指定时间与同一天同一分钟的起始时间之间流逝的秒数。
部分 说明
AValue 指定计算的时间
  • 返回值:返回流逝的秒数。

  • 示例:

var
  ADate: TDateTime;
  HOurOf: Word;
begin
  ADate := Now();
  HOurOf := SecondOftheMonth(ADate);
  ShowMessage(IntToStr(HOurOf));
end;
1
2
3
4
5
6
7
8
  • 返回值:返回流逝的秒数。

# 9.96. SecondOfTheWeek

function SecondOfTheWeek(const AValue: TDateTime): Cardinal;
1
  • 该函数返回指定的时间与其所在周首天00:00:00之间流逝的秒数。
部分 说明
AValue 指定计算的时间
  • 返回值:返回流逝的秒数。

  • 示例:

var
  ADate: TDateTime;
  HOurOf: Word;
begin
  ADate := Now();
  HOurOf := SecondOfTheWeek(ADate);
  ShowMessage(IntToStr(HOurOf));
end;
1
2
3
4
5
6
7
8
  • 返回值:返回流逝的秒数。

# 9.97. SecondsBetween

function SecondsBetween(const ANow, AThen: TDateTime): Int64;
1
  • 该函数返回两个间隔时间相差的秒数。
部分 说明
ANow,AThen 两个计算相差值的时间
  • 返回值:返回两个间隔时间相差的秒数。

  • 示例:

var
  ADt, TADt: TDateTime;
  Sec: Int64;
begin
  ADt := Now();
  TADt:= StrToDateTime('2020-08-08 08:08:08');
  Sec := SecondsBetween(ADt, TADt);
  ShowMessage('距离该时间已过' + IntToStr(Sec) + '秒');
end;
1
2
3
4
5
6
7
8
9
  • 运行结果:该函数返回ADt与TADt之间相差的秒数。

# 9.98. SecondsSpan

function SecondSpan(const ANow, AThen: TDateTime): Double;
1
  • 该函数返回两个指定时间相差的秒数,包括分数秒。
部分 说明
ANow,AThen 两个计算相差值的时间
  • 返回值:该函数返回Double类型的相差秒数。

  • 示例:

var
  ADt, TADt: TDateTime;
  Sec: Double;
begin
  ADt := Now();
  TADt:= StrToDateTime('2020-08-08 08:08:08');
  Sec := SecondSpan(ADt, TADt);
  ShowMessage('距离该时间已过' + FloatToStr(Sec) + '秒');
end;
1
2
3
4
5
6
7
8
9
  • 运行结果:该函数返回ADt与TADt之间相差的秒数。

# 9.99. StartOfAWeek

function StartOfAWeek(const AYear, AWeekOfYear, ADayOfWeek: Word): TDateTime;
1
  • 该函数返回指定日期中指定星期的第一个可表示时刻。
部分 说明
AYear 指定的年
AWeekOfYear 指定周
ADayOfWeek 指定周的第一天是哪天
  • 返回值:返回一个时间值。

  • 示例:

var
  DT: TDateTime;
begin
  DT := StartOfAWeek(2020,45,1);
  ShowMessage(DateToStr(DT));
end;
1
2
3
4
5
6
  • 运行结果:

2020-11-02

# 9.100. StartOfAYear

function StartOfAYear(const AYear: Word): TDateTime;
1
  • 该函数返回指定年份的第一个可表示的时刻。
部分 说明
AYear 指定年份
  • 返回值:返回获得的时间。

  • 示例:

var
  DT: TDateTime;
begin
  DT := StartOfAYear(2020);
  ShowMessage(DateToStr(DT));
end;
1
2
3
4
5
6
  • 运行结果:

2020-01-01

# 9.101. StartOfTheDay

function StartOfTheDay(const AValue: TDateTime): TDateTime;
1
  • 该函数根据指定的日期返回当天的零时时间。
部分 说明
AValue 日期表达式
  • 返回值:函数返回AValue所表示的某一天的开始时间。

  • 示例:

begin
  ShowMessage(FormatDateTime('yyyy-mm-dd hh:mm:ss',StartOfTheDay(Now)));
end;
1
2
3
  • 运行结果:该函数显示当天的零时时间。

# 9.102. StartOfTheMonth

function StartOfTheMonth(const AValue: TDateTime): TDateTime;
1
  • 该函数根据指定的日期返回当月第一天的零时时间。
部分 说明
AValue 日期表达式
  • 返回值:函数返回AValue所表示的某一天的开始时间。

  • 示例:

begin
  ShowMessage(FormatDateTime('yyyy-mm-dd hh:nn:ss',StartOfTheMonth(Now)));
end;
1
2
3

  执行上述代码,单击按钮,显示本月初的零时时间。

# 9.103. StartOfTheWeek

function StartOfTheWeek(const AValue: TDateTime): TDateTime;
1
  • 该函数根据指定的日期返回本周第一天的零时时间。
部分 说明
AValue 日期表达式
  • 返回值:函数返回AValue所表示的某一天的开始时间。

  • 示例:

begin
  ShowMessage(FormatDateTime('yyyy-mm-dd hh:nn:ss',StartOfTheWeek(Now)));
end;
1
2
3

  显示本周周一的零时时间。

# 9.104. StartOfTheYear

function StartOfTheYear(const AValue: TDateTime): TDateTime;
1
  • 该函数根据指定的日期返回当年的第一天的零时时间。
部分 说明
AValue 日期表达式
  • 返回值:函数返回AValue所表示的某一天的开始时间。

  • 示例:

begin
  ShowMessage(FormatDateTime('yyyy-mm-dd hh:nn:ss',StartOfTheYear(Now)));
end;
1
2
3

  显示本年第一天的零时时间。

# 9.105. StrToDate

function StrToDate(const S: String): TDateTime;
1
  • 该函数将字符串转换为日期值。
部分 说明
S 字符串表达式,表示待转换的字符串
  • 返回值:函数返回转换后的日期数据。

  • 示例:

begin
  ShowMessage(DateTimeToStr(StrToDate('2020-01-01')));
end;
1
2
3
  • 运行结果:

2020-01-01

# 9.106. StrToDateDef

function StrToDateDef(const S: String; const Default: TDateTime): TDateTime;
1
  • 该函数将字符串转换为日期值,如果字符串不符合日期格式,返回默认值。
部分 说明
S 字符串表达式,表示待转换的字符串
Default 日期数据,表示为函数提供的默认值
  • 返回值:函数返回转换后的日期数据,如果S不符合日期格式,函数返回默认值。

  • 示例:

var
  ADate: TDateTime;
  BDate: TDateTime;
begin
  ADate := StrToDate('2008-01-01');
  BDate := StrToDateDef('2008-01-0s',ADate);
  ShowMessage(DateToStr(BDate));
end;
1
2
3
4
5
6
7
8
  • 运行结果:

2008-01-01

# 9.107. StrToDateTime

function StrToDate(const S: String): TDateTime;
1
  • 该函数将字符串转换为日期值。
部分 说明
S 字符串表达式,表示待转换的字符串
  • 返回值:函数返回转换后的日期时间数据。

  • 示例:

var
  ADate: TDateTime;
begin
  ADate := StrToDateTime('2020-11-01 13:25:28');
  ShowMessage(DateTimeToStr(ADate));
end;
1
2
3
4
5
6
  • 运行结果:

2020-11-01 13:25:28

# 9.108. StrToDateTimeDef

function StrToDateTimeDef(const S: String; const Default: TDateTime): TDateTime;
1
  • 该函数将字符串转换为日期时间类型,如果字符串不符合格式,则使用默认值。
部分 说明
S 字符串表达式,表示待转换的字符串
Default 日期数据,表示为函数提供的默认值
  • 返回值:函数返回转换后的日期时间数据,如果S不符合日期时间格式,函数返回默认值。

  • 示例:

var
  ADate: TDateTime;
begin
  ADate := StrToDateTimeDef('2008-01-0D 12:59:59',Now);
  ShowMessage(DateTimeToStr(ADate));
end;
1
2
3
4
5
6

  上述函数运行后,字符串表达式中的日期时间数据不符合格式要求,函数返回默认值。

# 9.109. StrToTime

function StrToTime(const S: String): TDateTime;
1
  • 该函数将字符串转换为时间。
部分 说明
S 字符串表达式,表示待转换的字符串
  • 返回值:返回转换后的时间数据。

  • 示例:

var
  ATime: TDateTime;
begin
  ATime := StrToTime('12:59:59');
  if ATime < 0.5 then
    ShowMessage('早上好!')
  else
    ShowMessage('下午好!');
end;
1
2
3
4
5
6
7
8
9
  • 运行结果:

下午好!

# 9.110. StrToTimeDef

function StrToDateDef(Const S: string; const Default: TDateTime): TDateTime;
1
  • 该函数将字符串转换为时间,如果字符串不符合要求,则返回默认值。
部分 说明
S 字符串表达式,表示待转换的字符串
Default 日期数据,表示为函数提供的默认值
  • 返回值:函数返回转换后的时间数据,如果S不符合时间格式,函数返回默认值。

  • 示例:

var
  ATime: TDateTime;
begin
  ATime := StrToTimeDef('12:00:0s',Now);
  ShowMessage(TimeToStr(ATime));
end;
1
2
3
4
5
6

  该函数运行后,由于时间格式不符合要求,函数返回当前时间。

# 9.111. Time

function Time: TDateTime;
1
  • 函数用于返回当前系统时间。

  • 返回值:函数返回系统当前的时间数据。

  • 示例:

begin
  ShowMessage(TimeToStr(time));
end;
1
2
3
  • 运行结果:该示例运行后,返回当前系统的时间。

# 9.112. TimeOf

function TimeOf(const AValue: TDateTime): TDateTime;
1
  • 该函数用于去掉日期时间数据的日期部分,使其只包含时间部分,将日期设置为0。
部分 说明
AValue 日期时间类型表达式
  • 返回值:函数返回转换后的时间数据。

  • 示例:

begin
  ShowMessage(FormatDateTime('hh:mm:ss',TimeOf(Now)));
  ShowMessage(FormatDateTime('yyyy-mm-dd',TimeOf(Now)));
end;
1
2
3
4
  • 运行结果:显示当前时间信息,日期则显示为1899-12-30

# 9.113. TimeToStr

function TimeToStr(Time: TDateTime): String;
1
  • 该函数返回日期时间数据中时间部分的字符串。
部分 说明
Time 日期时间类型表达式
  • 返回值:函数返回时间部分的字符串。

  • 示例:

begin
  ShowMessage(TimeToStr(Now));
end;
1
2
3
  • 运行结果:该示例运行后,显示当前系统的时间。

# 9.114. Today

function Today: TDateTime;
1
  • 函数Today返回当前的日期数据,时间部分被设置为0。

  • 返回值:返回当前系统的日期。

  • 示例:

begin
  ShowMessage(DateToStr(Today));
end;
1
2
3
  • 运行结果:显示当前的系统日期。

# 9.115. Tomorrow

function Tomorrow: TDateTime;
1
  • 该函数返回明天的日期数据,时间部分被设置为0。

  • 返回值:函数返回明天日期。

  • 示例:

begin
  ShowMessage(DateToStr(Tomorrow));
end;
1
2
3
  • 运行结果:显示当前系统的明天的日期。

# 9.116. TryEncodeDate

function TryEncodeDate(Year,Month,Day:Word; out Date: TDateTime): Boolean;
1
  • 该函数根据参数中的年、月、日生成一个日期值,如果生成了日期值,函数返回True,否则返回False。
部分 说明
Year 整型表达式,用于表示生成日期值的年份
Month 整型表达式,用于表示生成日期值的月份
Day 整型表达式,用于某一月的第几天
Date 日期型表达式,用于存储生成的日期
  • 返回值:如果函数能够生成合法的日期,返回值为True,否则返回值为False。

  • 示例:

var
  ADate: TDateTime;
begin
  if TryEncodeDate(2020,11,01,ADate) Then
    ShowMessage(DateToStr(ADate));
end;
1
2
3
4
5
6
  • 运行结果:

2020-11-01

# 9.117. TryEncodeDateDay

function TryEncodeDateDay(const AYear, ADayOfYear: Word; out AValue: TDateTime): Boolean;
1
  • 该函数根据指定的年份和该年已过的天数计算日期。
部分 说明
AYear 整型表达式,用于表示生成日期的年份
ADayOfYear 整型表达式,用于表示已过的天数
AValue 日期表达式,用于存储生成的日期数据
  • 返回值:如果函数能够生成合规的日期,返回值为True,否则返回False。

  • 示例:

var
  ADate: TDateTime;
begin
  if TryEncodeDateDay(2020,306,ADate) Then
    ShowMessage(DateToStr(ADate));
end;
1
2
3
4
5
6
  • 运行结果:

2020-11-01

# 9.118. TryEncodeDateMonthWeek

function TryEncodeDateMonthWeek(const AYear, AMonth, AWeekOfMonth, ADayOfWeek: Word; var AValue: TDateTime): Boolean;
1
  • 该函数根据指定的年、月、每月的第几周、每周的第几天等信息生成一个日期。
部分 说明
AYear 整型表达式,用于表示生成日期的年份
AMonth 整型表达式,用于表示生成日期的月份
AWeekOfMonth 整型表达式,用于表示月份的第几周
ADayOfWeek 整型表达式,用于表示某一周的第几天
AValue 日期表达式,用于存储生成的日期数据
  • 返回值:如果函数能够生成合规的日期,返回值为True,否则返回False。

  • 示例:

var
  ADate: TDateTime;
begin
  if TryEncodeDateMonthWeek(2020,11,2,2,ADate) Then
    ShowMessage(DateToStr(ADate));
end;
1
2
3
4
5
6
  • 运行结果:

2020-11-10

# 9.119. TryEncodeDateTime

function TryEncodeDateTime(Year,Month,Day,Hour,Minute,Second,Millisecond:Word; out Date: TDateTime): Boolean;
1
  • 该函数根据参数中的年、月、日生成一个日期值,如果生成了日期值,函数返回True,否则返回False。
部分 说明
Year 整型表达式,用于表示生成日期值的年份
Month 整型表达式,用于表示生成日期值的月份
Day 整型表达式,用于某一月的第几天
Hour 整型表达式,用于表示小时
Minute 整型表达式,用于表示分钟
Second 整型表达式,用于表示秒
Millisecond 整型表达式,用于表示毫秒
Date 日期型表达式,用于存储生成的日期
  • 返回值:如果函数能够生成合法的日期时间,返回值为True,否则返回值为False。

  • 示例:

var
  ADate: TDateTime;
begin
  if TryEncodeDateTime(2020,11,01,12,13,32,293,ADate) Then
    ShowMessage(DateTimeToStr(ADate));
end;
1
2
3
4
5
6
  • 运行结果:

2020-11-01 12:13:32

# 9.120. TryEncodeDateWeek

function TryEncodeDateWeek(const AYear, AWeekOfYear: Word; out AValue: TDateTime; const ADayOfWeek: Word): Boolean;
1
  • 该函数根据指定的年及该年的第几周计算一个日期。
部分 说明
AYear 整型表达式,用于表示生成日期的年份
AWeekOfYear 整型表达式,用于表示已过的星期数
AValue 日期型表达式,用于存储生成的日期
ADayOfWeek 整型表达式,用于表示星期几,默认为1
  • 返回值:如果函数能够生成合法的日期,返回值为True,否则返回值为False。

  • 示例:

var
  ADate: TDateTime;
begin
  if TryEncodeDateWeek(2020,14,ADate,1) Then
    ShowMessage(DateTimeToStr(ADate));
end;
1
2
3
4
5
6
  • 运行结果:

2020-03-30

# 9.121. TryEncodeDayOfWeekInMonth

function TryEncodeDayOfWeekInMonth(const AYear, AMonth, ANthDayOfWeek, ADayOfWeek: Word; out AValue: TDateTime): Boolean;
1
  • 该函数用于根据指定的年、月、星期以及星期在某一月中出现的次数等信息生成一个日期值。
部分 说明
AYear 整型表达式,用于表示生成日期的年份
AMonth 整型表达式,用于表示生成日期的月份
ANthDayOfWeek 整型表达式,用于指定ADayOfWeek在某一月中出现的次数
ADayOfWeek 整型表达式,用于表示星期几
AValue 日期型表达式,用于存储生成的日期
  • 返回值:如果函数能够生成合法的日期,返回值为True,否则返回值为False。

  • 示例:

var
  ADate: TDateTime;
begin
  if TryEncodeDayOfWeekInMonth(2020,11,1,2,ADate) Then
    ShowMessage(DateTimeToStr(ADate));
end;
1
2
3
4
5
6
  • 运行结果:

2020-11-03

# 9.122. TryEncodeTime

function TryEncodeTime(Hour, Min, Sec, MSec: Word; out Time: TDateTime): Boolean;
1
  • 该函数根据指定的小时、分、秒、毫秒生成一个时间值。
部分 说明
Hour 整型表达式,用于表示生成时间的小时
Min 整型表达式,用于表示生成时间的分钟
Sec 整型表达式,用于表示秒
MSec 整型表达式,用于表示毫秒
Time 日期型表达式,用于存储生成的日期
  • 返回值:如果函数能够生成合法的日期,返回值为True,否则返回值为False。

  • 示例:

var
  ADate: TDateTime;
begin
  if TryEncodeTime(12,31,45,122,ADate) Then
    ShowMessage(FormatDateTime('hh:mm:ss:zzz',ADate));
end;
1
2
3
4
5
6
  • 运行结果:

12:31:45:122

# 9.123. TryRecodeDateTime

function TryRecodeDateTime(const AValue: TDateTime; const AYear, AMonth, ADay, AHour, AMinute, ASecond, AMilliSecond: Word; out AResult: TDateTime): Boolean;
1
  • 该函数能够对指定的日期数据部分或全部内容进行修改。
部分 说明
AValue 日期型数据,表示欲修改的数据
AYear 整型表达式,表示新日期的年份
AMonth 整型表达式,表示新日期的月份
ADay 整型表达式,表示新日期的日
AHour 整型表达式,用于表示新日期的小时
AMinute 整型表达式,用于表示新日期的分钟
ASecond 整型表达式,用于表示新日期的秒
AMilliSecond 整型表达式,用于表示新日期的毫秒
out AResult 日期型表达式,用于存储修改后的日期
  • 返回值:函数返回日期。

  • 示例:

var
  ADate: TDateTime;
begin
  if TryRecodeDateTime(Now,2020,11,1,12,33,45,122,ADate) Then
    ShowMessage(FormatDateTime('yyyy-mm-dd hh:mm:ss:zzz',ADate));
end;
1
2
3
4
5
6
  • 运行结果:

2020-11-01 12:33:45:122

# 9.124. TryStrToDate

function TryStrToDate(const S: String; out Value: TDateTime): Boolean;
1
  • 该函数将字符串转换为日期。
部分 说明
S 字符串表达式,表示欲转换的数据
Value 日期表达式,用于存储转换后的数据
  • 返回值:如果函数能够将字符串转换为日期,返回值为True,否则返回值为False。

  • 示例:

var
  temp: TDateTime;
  msg: String;
begin
  if TryStrToDate('2005.06-1D',temp) Then
    msg := DateToStr(temp)
  else
    msg := '字符串不符合格式要求';
  ShowMessage(msg);
end;
1
2
3
4
5
6
7
8
9
10
  • 运行结果:运行上述代码,由于时间格式不正确,显示字符串不符合格式要求提示框。

# 9.125. TryStrToDateTime

function TryStrToDateTime(const S: String; out Value: TDateTime): Boolean;
1
  • 该函数将字符串转换为日期。
部分 说明
S 字符串表达式,表示欲转换的数据
Value 日期表达式,用于存储转换后的数据
  • 返回值:如果函数能够将字符串转换为日期时间,返回值为True,否则返回值为False。

  • 示例:

var
  temp: TDateTime;
  msg: String;
begin
  if TryStrToDateTime('2005-06-11 12:30',temp) Then
    msg := DateTimeToStr(temp)
  else
    msg := '字符串不符合格式要求';
  ShowMessage(msg);
end;
1
2
3
4
5
6
7
8
9
10
  • 运行结果:运行上述代码,显示2005-06-11 12:30。

# 9.126. TryStrToTime

function TryStrToTime(const S: String; out Value: TDateTime): Boolean;
1
  • 该函数将字符串转换为日期。
部分 说明
S 字符串表达式,表示欲转换的数据
Value 日期表达式,用于存储转换后的数据
  • 返回值:如果函数能够将字符串转换为时间,返回值为True,否则返回值为False。

  • 示例:

var
  temp: TDateTime;
  msg: String;
begin
  if TryStrToTime('12:30',temp) Then
    msg := TimeToStr(temp)
  else
    msg := '字符串不符合格式要求';
  ShowMessage(msg);
end;
1
2
3
4
5
6
7
8
9
10
  • 运行结果:运行上述代码,显示12:30。

# 9.127. WeekOf

function WeekOf(const AValue: TDateTime): Word;
1
  • 该函数根据日期值返回日期值所在的周在一年中的周数。
部分 说明
AValue 日期表达式,用于指定日期数据
  • 返回值:函数返回参数指定的日期在一年中的周数。

  • 示例:

begin
  ShowMessage(IntToStr(WeekOf(Now)));
end;
1
2
3
  • 运行结果:运行后显示当天的本年周数。

# 9.128. WeekOfTheMonth

function WeekOfTheMonth(const AValue: TDateTime): Word;
1
  • 该函数根据指定的日期判断本周是本月中的第几周。
部分 说明
AValue 日期表达式,用于表示指定日期数据
AYear 整型表达式,用于返回日期中的年份
AMonth 整型表达式,用于返回日期中的月份
  • 返回值:函数返回参数指定的日期在本月中的周数。

  • 示例:

begin
  ShowMessage(IntToStr(WeekOfTheMonth(Now)));
end;
1
2
3
  • 运行结果:显示当天在本月中的周数。

# 9.129. WeekOfTheYear

function WeekOfTheYear(const AValue: TDateTime): Word;
1
  • 该函数根据日期值返回日期值所在的周在一年中的周数。
部分 说明
AValue 日期表达式,用于指定日期数据
AYear 整型表达式,用于返回日期中的年份
  • 返回值:函数返回参数指定的日期在所标识的年中的周数。

  • 示例:

begin
  ShowMessage(IntToStr(WeekOfTheYear(Now)));
end;
1
2
3
  • 运行结果:显示本周在一年中的周数。

# 9.130. WeeksBetween

function WeeksBetween(const ANow, AThen: TDateTime): Integer;
1
  • 该函数用于计算两个日期之间的周数。
部分 说明
ANow 待比较的日期
AThen 待比较的日期
  • 返回值:函数返回参数指定的时间段的周数。

  • 示例:

begin
  ShowMessage(IntToStr(WeeksBetween(Now , Now + 14)));
end;
1
2
3
  • 运行结果:

2

# 9.131. WithinPastHours

function WithinPastHours(const ANow, AThen: TDateTime; const AHours: Int64): Boolean;
1
  • 该函数判断两个时间段之间的差距是否在指定的小时之内。
部分 说明
ANow 待比较的日期
AThen 待比较的日期
AHours 整型表达式,用于指定时间段的差距
  • 返回值:如果指定的时间段小于等于AHours,函数返回True,否则返回False。

  • 示例:

var
  msg: String;
begin
  if WithinPastDays(StrToTime('12:00:00') , StrToTime('15:00:00'),3) Then
    msg := '差距小于等于3'
  else
    msg := '差距大于3';
  ShowMessage(msg);
end;
1
2
3
4
5
6
7
8
9
  • 运行结果:

差距小于等于3

# 9.132. WithinPastMilliSeconds

function WithinPastMilliSeconds(const ANow, AThen: TDateTime; const AMilliSeconds: Int64): Boolean;
1
  • 该函数判断两个时间段之间的差距是否在指定的毫秒之内。
部分 说明
ANow 日期表达式
AThen 日期表达式
AMilliSeconds 整型表达式,用于指定时间段的差距
  • 返回值:如果指定的时间段小于等于AMilliSeconds,函数返回True,否则返回False。

  • 示例:

var
  msg: String;
begin
  if WithinPastMilliSeconds(StrToTime('12:00:00.099') , StrToTime('12:00:00.999'),1000) Then
    msg := '差距小于等于1000'
  else
    msg := '差距大于1000';
  ShowMessage(msg);
end;
1
2
3
4
5
6
7
8
9
  • 运行结果:

差距小于等于1000。

# 9.133. WithinPastMinutes

function WithinPastMinutes(const ANow, AThen: TDateTime; const AMinutes: Int64): Boolean;
1
  • 该函数判断两个时间段之间的差距是否在指定的分钟数之内。
部分 说明
ANow 日期表达式
AThen 日期表达式
AMinutes 整型表达式,用于指定时间段的差距
  • 返回值:如果指定的时间算小于等于AMinutes,函数返回True,否则返回False。

  • 示例:

var
  msg: String;
begin
  if WithinPastMinutes(StrToTime('12:10:00') , StrToTime('12:03:00'),6) Then
    msg := '差距小于等于6'
  else
    msg := '差距大于6';
  ShowMessage(msg);
end;
1
2
3
4
5
6
7
8
9
  • 运行结果:

差距大于6

# 9.134. WithinPastMonths

function WithinPastMonths(const ANow, AThen: TDateTime; const AMonths: Integer): Boolean;
1
  • 该函数判断两个时间段之间的差距是否在指定的月数之内。
部分 说明
ANow 日期表达式
AThen 日期表达式
AMonths 整型表达式,用于指定时间段的差距
  • 返回值:如果指定的时间段小于等于AMonths,函数返回True,否则返回False。
var
  msg: String;
begin
  if WithinPastMonths(StrToDate('2020-11-1') , StrToDate('2023-12-1'),28) Then
    msg := '差距小于等于28'
  else
    msg := '差距大于28';
  ShowMessage(msg);
end;
1
2
3
4
5
6
7
8
9
  • 运行结果:

差距大于28

# 9.135. WithinPastSeconds

function WithinPastSeconds(const ANow, AThen: TDateTime; const ASeconds: Int64): Boolean;
1
  • 该函数判断两个时间段之内的差距是否在指定的秒数之内。
部分 说明
ANow 日期表达式
AThen 日期表达式
ASeconds 整型表达式,用于指定时间段的差距
  • 返回值:如果指定的时间段小于等于ASeconds,函数返回True,否则返回False。

  • 示例:

var
  msg: String;
begin
  if WithinPastSeconds(StrToDateTime('2020-11-1 12:00:00') , StrToDateTime('2020-11-10 12:00:11'),864000) Then
    msg := '差距小于等于864000'
  else
    msg := '差距大于864000';
  ShowMessage(msg);
end;
1
2
3
4
5
6
7
8
9
  • 运行结果:

差距小于等于86400

# 9.136. WithinPastWeeks

function WithinPastWeeks(const ANow, AThen: TDateTime; const AWeeks: Integer): Boolean;
1
  • 该函数判断两个时间段之间的差距是否在指定的周数之内。
部分 说明
ANow 日期表达式
AThen 日期表达式
AWeeks 整型表达式,用于指定时间段的差距
  • 返回值:如果指定的时间段小于等于AWeeks,函数返回True,否则返回False。

  • 示例:

var
  msg: String;
begin
  if WithinPastWeeks(StrToDateTime('2020-11-1 12:00:00') , StrToDateTime('2020-11-10 12:00:11'),2) Then
    msg := '差距小于等于2'
  else
    msg := '差距大于2';
  ShowMessage(msg);
end;
1
2
3
4
5
6
7
8
9
  • 运行结果:

差距小于等于2

# 9.137. WithinPastYears

function WithinPastYears(const ANow, AThen: TDateTime; const AYears: Integer): Boolean;
1
  • 该函数用于判断两个时间段之间的差距是否在指定的年数之内。
部分 说明
ANow 日期表达式
AThen 日期表达式
AYears 整型表达式,用于指定时间段的差距
  • 返回值:如果指定的时间段小于等于AYears,函数返回True,否则返回False。

  • 示例:

var
  msg: String;
begin
  if WithinPastYears(StrToDateTime('2020-11-1 12:00:00') , StrToDateTime('2021-10-30 12:00:00'),1) Then
    msg := '差距小于等于1'
  else
    msg := '差距大于1';
  ShowMessage(msg);
end;
1
2
3
4
5
6
7
8
9
  • 运行结果:

差距小于等于1

# 9.138. YearOf

function YearOf(const AValue: TDate): Word;
1
  • 该函数返回指定日期的年份。
部分 说明
AValue 日期表达式,用于指定日期数据
  • 返回值:函数返回AValue所标识的年份。

  • 示例:

begin
  ShowMessage(IntToStr(YearOf(Now)));
end;
1
2
3
  • 运行结果:运行后显示当天显示的年份数。

# 9.139. YearsBetween

function YearsBetween(const ANow, AThen: TDateTime): Integer;
1
  • 函数返回两个日期数据之间大约的年数。
部分 说明
ANow 日期表达式
AThen 日期表达式
  • 返回值:函数返回两个日期数据之间大约的年数。

  • 示例:

begin
  ShowMessage(FloatToStr(YearsBetween(Now,StrToDate('2077-10-11'))));
end;
1
2
3
  • 运行结果:运行后显示当天与2077年相差的年数。

# 9.140. YearsSpan

function YearSpan(const ANow, AThen: TDateTime): Double;
1
  • 该函数返回两个日期数据之间大约的年数,包含小数部分。
部分 说明
ANow 日期表达式
AThen 日期表达式
  • 返回值:函数返回两个日期之间大约的年数,包含小数部分。

  • 示例:

begin
  ShowMessage(FloatToStr(YearSpan(Now,StrToDate('2077-10-11'))));
end;
1
2
3
  • 运行结果:运行后显示当天与2077年相差的年数,包含小数部分。

# 9.141. YesterDay

function Yesterday: TDateTime;
1
  • 该函数返回昨天的日期。

  • 返回值:函数返回昨天的系统日期。

  • 示例:

begin
  ShowMessage(DateToStr(Yesterday));
end;
1
2
3
  • 运行结果:该函数返回昨天的系统日期。

# 10. 类型转换函数

# 10.1. Bounds

function Bounds(ALeft, ATop, AWidth, AHeight: Integer): TRect;
1
  • 该函数获得某个矩形。
部分 说明
ALeft,ARight,AWidth,AHeight 转换区域的规格大小
  • 返回值:返回一个TRect类型的矩阵。

  • 示例:

var
  MyRect : TRect;
begin
  MyRect := Bounds(10,10,50,50);
end;
1
2
3
4
5
  • 运行结果:设置一个指定规格的矩形。

# 10.2. IntToHex

function IntToHex(Vlue:Integer;Digits:Integer):String;
1
  • 该函数将一个数字转换成一个字符串,字符串中包含该数字的十六进制表现形式。
部分 说明
Value 将要转换的整形值
Digits 转换位数
  • 返回值:返回转换后的字符串。
var
  S: Integer;
begin
  S := 2147483647;
  ShowMessage(IntToHex(S,0));
  ShowMessage(IntToHex(S,8));
  ShowMessage(IntToHex(S,10));
end;
1
2
3
4
5
6
7
8
  • 运行结果:

7FFFFFFF 007FFFFFFF

# 10.3. IntToStr

function IntToStr(Value: Integer): String;
1
  • 该函数将一个指定整型值转换成一个字符串。
部分 说明
Value 将要转换的整型值
  • 返回值:返回转换后的字符串。

  • 示例:

  begin
     ShowMessage(IntToStr(1982));
     ShowMessage(IntToStr(-1982));
  end;
1
2
3
4
  • 运行结果:

1982 -1982

# 10.4. Point

function Point(AX,AY: Integer): TPoint;
1
  • 该函数创建一个TPoint结构表示AX,AY指定的坐标。
参数 说明
AX,AY 转换坐标
  • 返回值:返回一个TPoint类型的值。

  • 示例:

var
  TP: TPoint;
begin
  TP := Point(10,10);
end;
1
2
3
4
5

  该端代码在坐标(10,10)的位置建立一个TPoint类型的点。

# 10.5. Rect

function Rect(ALeft,ATop,ARight,ABottom: Integer): TRect;
1
  • 该函数用一组坐标创建一个TRect结构,此结构用指定的坐标表示矩形。
参数 说明
ALeft 左边界坐标
ARight 右边界坐标
ATop 上边界坐标
ABottom 下边界坐标
ATopLeft 左上角的点
ABottomRight 右下角的点
  • 返回值:返回一个TRect类型的矩阵。

  • 示例:

var
  MyRect: TRect;
begin
  MyRect := Rect(10,10,170,70);
end;
1
2
3
4
5

# 10.6. StrToBool

function StrToBool(const S: String): Boolean;
1
  • 该函数将参数指定的字符串转化为Boolean类型的值,字符串为非逻辑表达式时将引起异常。
参数 说明
S 将要转换的字符串,如"True"或"False"
  • 返回值:返回转换后的Boolean类型值。

  • 示例:

var
  bools: string;
begin
  bools := 'true';
  if StrToBool(bools) Then
  begin
    ShowMessage('True');
  End;
end;
1
2
3
4
5
6
7
8
9
  • 运行结果:

True

# 10.7. StrToBoolDef

function StrToBoolDef(const S: String; const Default: Boolean): Boolean;
1
  • 该函数将参数指定的字符串转化为Boolean类型值,字符串为非逻辑表达式时将返回默认值。
参数 说明
S 将要转换的字符串
Default 默认返回值
  • 返回值:返回转换后的Boolean类型值。

  • 示例:

begin
  if StrToBoolDef('0',True) Then
    ShowMessage('True')
  else
    ShowMessage('False');
  if StrToBoolDef('-1',True) Then
    ShowMessage('True')
  else
    ShowMessage('False');
  if StrToBoolDef('5',True) Then
    ShowMessage('True')
  else
    ShowMessage('False');
end;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
  • 运行结果:

False True True

# 10.8. StrToInt

function StrToInt(const S: String): Integer;
1
  • 函数将参数指定用的二进制或十六进制符号表示的一个整形字符串转换为一个整数值。
部分 说明
S 将要转换的字符串
  • 返回值:返回转换后的整形值。

  • 示例:

var
  si: String;
  i: Integer;
begin
  si := '19091103';
  i := StrToInt(si);
end;
1
2
3
4
5
6
7

  该端代码将字符串si转换为整型值,并存储到变量i中,i的值为19091103。

# 10.9. StrToIntDef

function StrToIntDef(const S: String; const Default: Integer): Integer;
1
  • 该函数将指定的一个表示整型数字的字符串转换为一个数值。
参数 说明
S 将要转换的字符串
Default 默认返回值
  • 返回值:返回转换后的整型值,如果S不能够转换为整型值,则返回默认值Default。

  • 示例:

var
  i: Integer;
  s: String;
begin
  s := 'First';
  i := StrToIntDef(s,18);
  ShowMessage(IntToStr(i));
end;
1
2
3
4
5
6
7
8
  • 运行结果:

18

# 10.10. TryStrToBool

function TryStrToBool(const S: String;out Value: Boolean): Boolean;
1
参数 说明
S 将要转换的字符串
Value 转换后值返回的位置
  • 返回值:返回转换是否成功,成功返回True,否则返回False。
var
  i: Integer;
  s: String;
  sd: Boolean;
begin
  for i := 0 To 3 Do
  begin
    case i Of
    0: s := '0';
    1: s := '3';
    2: s := '-4';
    3: s := '……';
    End;
    if TryStrToBool(s,sd) Then
    begin
      if sd Then
        ShowMessage('True')
      else
        ShowMessage('False');    
    End
    else
      ShowMessage('数值不为字符型');
    end;
End;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
  • 运行结果:

False True True 数值不为字符型。

# 10.11. TryStrToInt

function TryStrToInt(const S: String;out Value: Integer): Boolean;
1
参数 说明
S 将要转换的字符串
Value 返回值赋予的变量
  • 返回值:如果转换成功则返回 True,否则返回False。

  • 示例:

var
  i,k: Integer;
  s: String;
begin
  s := '......';
  for k := 0 To 1 Do
  begin
    if TryStrToInt(s,i) Then
      ShowMessage(IntToStr(i))
    else
      ShowMessage('不为数字型。');
    s := '34';
  End;
End;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
  • 运行结果:

不为数字型。 34

# 11. 文件处理函数

# 11.1. ExcludeTrailingBackslash

function ExcludeTrailingBackslash(const S: string): string;
1
  • 改函数使用多字节字符集,它删除参数中结束路径界定符\,并向后兼容。
部分 说明
S 待转换的字符串
  • 返回值:返回删除界定符的字符串。

  • 示例:

var
  s: String;
begin
  s := ExcludeTrailingBackslash('D:\test\');
  ShowMessage(s);
end;
1
2
3
4
5
6
  • 运行结果:

D:\test

# 11.2. ExcludeTrailingPathDelimiter

function ExcludeTrailingPathDelimiter(const S: string): string;
1
部分 说明
S 待转换的字符串
  • 该函数使用多字节字符集,它删除参数中结束路径界定符\,若参数中最后一个字符为界定符,则删除该字符,否则参数无改变返回。

  • 返回值:返回删除界定符的字符串。

  • 示例:

var
  s: String;
begin
  s := ExcludeTrailingPathDelimiter('D:\test\');
  ShowMessage(s);
end;
1
2
3
4
5
6
  • 运行结果:

D:\test

# 11.3. ExpandFileName

function ExpandFileName(const FileName: string): string;
1
  • 该函数将相对文件名转换为完全标准化路径。它不验证生成的完全标准化路径是否引用一个现有的文件。
部分 说明
FileName 待查找的文件名称(相对文件名称)
  • 返回值:返回一个标准化文件路径。

  • 示例:

var
  s: String;
begin
  s := ExpandFileName('test.txt');
  ShowMessage(s);
end;
1
2
3
4
5
6
  • 运行结果:显示当前相对路径的完全标准化路径。

# 11.4. ExpandUNCFileName

function ExpandUNCFileName(const FileName: string): string;
1
  • 该函数利用网络文件的通用命名协议(NUC)返回一个完全标准化的路径名。本地的文件名使用方式同ExpandFileName。
部分 说明
FileName 待查找的文件名称(相对文件名称)
  • 返回值:返回一个标准化文件路径。

  • 示例:

var
  s: String;
begin
  s := ExpandUNCFileName('test.txt');
  ShowMessage(s);
end;
1
2
3
4
5
6
  • 运行结果:显示当前相对路径的完全标准化路径。

# 11.5. ExtractFileDir

function ExtractFileDir(const FileName: string): string;
1
  • 该函数从文件名中提取驱动器和目录部分。
部分 说明
FileName 待查找的文件名称
  • 返回值:返回一个目录路径。

  • 示例:

var
  s: String;
begin
  s := ExtractFileDir('D:\test.txt');
  ShowMessage(s);
end;
1
2
3
4
5
6
  • 运行结果:显示当前相对路径的目录路径。例如D:\

# 11.6. ExtractFileDrive

function ExtractFileDrive(const FileName: string): string;
1
  • 该函数返回完全标准化路径名的驱动器部分。
部分 说明
FileName 待查找的文件名称
  • 返回值:返回一个目录路径。

  • 示例:

var
  s: String;
begin
  s :=  ExtractFileDrive('D:\test.txt');
  ShowMessage(s);
end;
1
2
3
4
5
6
  • 运行结果:显示当前路径的驱动器名称。例如D:

# 11.7. ExtractFileName

function ExtractFileName(const FileName: string): string;
1
  • 该函数用于从指定的字符串中提取文件名。
部分 说明
FileName 待查找的文件名称
  • 返回值:返回一个目录路径。

  • 示例:

var
  s: String;
begin
  s :=  ExtractFileName('D:\test.txt');
  ShowMessage(s);
end;
1
2
3
4
5
6
  • 运行结果:显示路径。例如test.txt

# 11.8. ExtractFileExt

function ExtractFileExt(const FileName: string): string;
1
  • 该函数返回FileName参数指定文件名的扩展名,生成的字符串包含分隔文件名的扩展名和扩展名的句点符。
部分 说明
FileName 待查找的文件名称
  • 返回值:返回一个文件的扩展名。

  • 示例:

var
  s: String;
begin
  s :=  ExtractFileExt('D:\test.txt');
  ShowMessage(s);
end;
1
2
3
4
5
6
  • 运行结果:

.txt

# 11.9. ExtarctFilePath

function ExtractFilePath(const FileName: string): string;
1
  • 该函数用于返回指定文件的工作路径。
部分 说明
FileName 指定的文件名
  • 返回值:返回文件的工作路径。

  • 示例:

var
  s: String;
begin
  s :=  ExtractFilePath('D:\test.txt');
  ShowMessage(s);
end;
1
2
3
4
5
6
  • 运行结果:

D:\

# 11.10. ExtractRelativePath

function ExtractRelativePath(const BaseName, DestName: string): string;
1
  • 该函数用于将完全标准化的路径转换为相对路径名。
部分 说明
BaseName 基本目录的完全标准化路径,不一定包含文件名
DestName 指定被转换的文件名(包含路径)
  • 返回值:返回指定的路径。

  • 示例:

var
  s: String;
begin
  s :=  ExtractRelativePath('D:\test\','D:\test.txt');
  ShowMessage(s);
end;
1
2
3
4
5
6
  • 运行结果:

..\test.txt

# 11.11. FileAge

function FileAge(const FileName: string): LongInt; overload;
1
  • 该函数返回指定文件的操作系统时间。
部分 说明
FileName 指定的文件名
  • 返回值:返回指定文件的操作系统时间,如果返回-1则表示文件没有找到。

  • 示例:

begin
  ShowMessage(IntToStr(FileAge('D:\test.txt')));
end;
1
2
3
  • 运行结果:执行该语句后,返回文件的日期时间。

# 11.12. FileExists

  function FileExists(const FileName: String): Boolean;
1
  • 该函数用于测试指定的文件是否存在。
部分 说明
FileName 指定文件的名称
  • 返回值:如果指定的文件存在返回True,否则返回False。

  • 示例:

begin
  if FileExists('sample.pdf') then
    ShowMessage('文件存在')
  else
    ShowMessage('文件不存在');
end;
1
2
3
4
5
6
  • 运行结果:

文件不存在

# 11.13. FileIsReadOnly

function FileIsReadOnly(const FileName: string): Boolean;
1
  • 该函数用于判断指定文件是否是只读的。
部分 说明
FileName 指定文件的名称
  • 返回值:如果文件为只读则返回True,否则返回False。

  • 示例:

begin
  ShowMessage(BoolToStr(FileIsReadOnly('E:\test.txt'),True));
end;
1
2
3
  • 运行结果:判断指定文件是否为只读文件,并弹窗显示。

# 11.14. FileSetReadOnly

function FileSetReadOnly(const FileName: string; ReadOnly: Boolean): Boolean;
1
  • 该函数设置文件是否未只读。
部分 说明
FileName 指定文件的文件名
ReadOnly 是否为只读,如果为True则设置文件为只读,否则设置文件为读写
  • 返回值:设置成功则返回True,否则返回False。

  • 示例:

begin
  if FileSetReadOnly('D:\test.txt',True) then
    ShowMessage('设置文件为只读属性成功');
end;
1
2
3
4
  • 运行结果:将对应的文件设置为只读属性。

# 11.15. ForceDirectoris

function ForceDirectories(Dir: string): Boolean;
1
  • 该函数在指定的目录中创建一个目录。
部分 说明
Dir 创建目录的全名,必须包括上级目录
  • 返回值:如果创建成功则返回True,否则会返回False。

  • 示例:

var
  Dir: String;
begin
  Dir := 'D:\test\sample';
  if ForceDirectories(Dir) then
    ShowMessage(Dir + '创建成功!' );
end;
1
2
3
4
5
6
7
  • 运行结果:成功创建指定的目录。

# 11.16. GetCurrentDir

function GetCurrentDir: string;
1
  • 该函数返回当前目录。

  • 返回值:返回当前目录名称。

  • 示例:

begin
  ShowMessage(GetCurrentDir);
end;
1
2
3
  • 运行结果:显示当前的目录名称。

# 11.17. InCludeTrailingBackslash

function IncludeTrailingBackslash(const S: string): string;
1
  • 该函数确保路径名以路径定界符\结束。
部分 说明
S 待检查的字符串路径
  • 返回值:返回检查后的路径。

  • 示例:

var
  s: String;
begin
  s :=  IncludeTrailingBackslash('D:\test');
  ShowMessage(s);
end;
1
2
3
4
5
6
  • 运行结果:

D:\test\

# 11.18. InCludeTrailingPathDelimiter

function IncludeTrailingPathDelimiter(const S: string): string;
1
  • 该函数确保路径名以路径定界符\结束,若参数S表示的路径名已经以路径定界符\结束,则返回的字符串无变化;否则将S字符串加上定界符返回。
部分 说明
S 待检查的字符串路径
  • 返回值:返回检查后的路径。

  • 示例:

var
  s: String;
begin
  s :=  IncludeTrailingPathDelimiter('D:\test');
  ShowMessage(s);
end;
1
2
3
4
5
6
  • 运行结果:

D:\test\

# 11.19. IOResult

function IOResult: Integer;
1
  • 该函数返回最后一次I/O操作的状态信息。

  • 返回值:如果最后一次I/O操作执行成功则返回0,否则返回错误代码。

  • 示例:

begin
  if IOResult = 0 then
    ShowMessage('上一次读写操作成功');
end;
1
2
3
4
  • 运行结果:如果I/O运行操作无错误发生则显示上一次读写操作成功。

# 11.20. MatchesMask

function MatchesMask(const Filename, Mask: string): Boolean;
1
  • 该函数利用描述的Mask参数检查FileName是否与过滤器指定的字符串格式一致。一个有效的过滤器包含文字字符、字符集和通配符。
部分 说明
FileName 待检查的字符串
Mask 匹配的字符串
  • 返回值:如果两者匹配,返回True,否则返回False。

  • 示例:

begin
  if MatchesMask('Hello','Hello') then
    ShowMessage('OK')
  else
    ShowMessage('no');
end;
1
2
3
4
5
6
  • 运行结果:

OK

# 11.21. ReadIni

function ReadIni(filename,Section,Ident:String;Const Default:String = ''):String;
1
  • 该函数可用于从 ini 配置文件中读取配置信息。
部分 说明
filename 配置文件的名称,需包含完整的目录路径
Section 配置文件的分段名称
Ident 配置文件的设置项名称
Default 若配置文件中未查询到此设置项的名称,可设置默认的选项值
var
  c:TTMSFNCMapsCoordinateRec;
begin
  FThis.lblongitude.Caption:= ReadIni(GetCurrentDir+'/'+'demo.ini','Maps','CenterLongitude','121.562317141507');
  FThis.lblatitude.Caption := ReadIni(GetCurrentDir+'/'+'demo.ini','Maps','CenterLatitude','25.037192618436');
end;
1
2
3
4
5
6

# 11.22. SetCurrentDir

function SetCurrentDir(const Dir: string): Boolean;
1
  • 该函数能够改变当前目录。
部分 说明
Dir 改变后的目标目录名称
  • 返回值:如果执行成功返回True,否则返回False。

  • 示例:

var
  Dir: String;
begin
  Dir := 'D:\test';
  if SetCurrentDir(Dir) then
    ShowMessage(GetCurrentDir());
end;
1
2
3
4
5
6
7
  • 运行结果:

D:\test

# 12. 格式化函数

# 12.1. Format

function Format(const Format: string; const Args: array of const): String;
1
  • 该函数按照指定方式格式化一个数组常量的字符形式。
部分 说明
Format 是一个字符串表达式,指定格式化所使用的格式
Args 是一个数组表达式,指定要格式化的内容
  • 返回值:函数返回指定的格式格式化后的字符串。

  • 示例:

 ShowMessage(Format('x=%d',[12]));  //'x=12'//最普通
 ShowMessage(Format('x=%3d',[12])); //'x= 12'//指定宽度,若小于指定的宽度在前面补空格
 ShowMessage(Format('x=%f',[12.0]));  //'x=12.00'//浮点数
 ShowMessage(Format('x=%.3f',[12.0])); //'x=12.000' //指定小数点后的位数
 ShowMessage(Format('x=%.*f',[5,12.0])); //'x=12.00000' //动态配置小数位数
 ShowMessage(Format('x=%.5d',[12]));     // 'x=00012' //前面补0
 ShowMessage(Format('x=%.5x',[12]));     //'x=0000C'  //转换为十六进制
 ShowMessage(Format('x=%1:d%0:d',[12,13])); //'x=1312' //使用索引替换指定位置的字符
 ShowMessage(Format('x=%p',[nil]));         //'x=00000000' //返回指针类型的地址
 ShowMessage(Format('x=%1.1e',[12.0]));     //'x=1.2E+001' //科学记数法
 ShowMessage(Format('x=%%',[]));            //'x=%' //得到"%"
1
2
3
4
5
6
7
8
9
10
11

# 12.2. FormatBuf

function FormatBuf(var Buffer; BufLen: Cardinal; const Format; FmtLen: Cardinal; const Args: array of const): Cardinal;
1
  • 该函数按指定方式格式化一个数组常量到缓冲区Buffer中。
部分 说明
Buffer Cardinal类型的缓冲区
BufLen 缓冲区的大小
Format 指定格式化所使用的格式
FmtLen 格式化表达式的长度
Args 数组表达式,指定要格式化的内容
FormatSettings 记录类型,包含了系统预定义的格式化方法
  • 返回值:返回缓冲区的函数。

  • 示例:FmtStr程序是通过FormatBuf函数来实现的。

procedure FmtStr(var Result: string; const Format: string; const Args: array of const);
var
  Len,BufLen: Integer;
  Buffer: array[0..4095] of Char;
begin
  BufLen := SizeOf(Buffer);
  if Length(Format) < (sizeof(Buffer)-(sizeof(Buffer) div 4)) then
    Len := FormatBuf(Buffer,SizeOf(Buffer) - 1, Pointer(Format)^, Length(Format),Args)
  else
  begin
    BufLen := Length(Format);
    Len := BufLen;
  end;
  if Len >= BufLen -1 then
  begin
    while Len >= BufLen - 1 do
    begin
      Inc(BufLen,BufLen);
      Result := '';
      SetLength(Result,BufLen);
      Len := FormatBuf(Pointer(Result)^,BufLen - 1,Pointer(Format)^, Length(Format),Args);
    end;
    SetLength(Result,Len);
  end
  else
  SetString(Result,Buffer,Len);
end;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27

# 12.3. FormatCurr

function FormatCurr(const Format: string; Value: Currency): string;
1
  • 该函数将货币类型以指定的格式转换成字符串。
部分 说明
Format 用于指定格式化的字符串
Value 将要格式化的内容
  • 返回值:返回将货币类型以指定格式转换成的字符串。

  • 示例:

var
  S: String;
begin
  S := FormatCurr('#,##0.00;;Zero',0.5);
  ShowMessage(S);
end;
1
2
3
4
5
6
  • 运行结果:

0.50

# 12.4. FormatDateTime

function FormatDateTime(const Format: String; DateTime: TDateTime): String;
1
  • 该函数用于格式化显示日期时间。
部分 说明
Format 用于指定格式化的字符串
DateTime 格式化显示的内容
  • 返回值:返回用指定的格式来格式化日期时间的字符串。

  • 示例:

ShowMessage(FormatDateTime('"The Metting is on" dddd,mm mm d, yyyy," at " hh:mm AM/PM',Now +0.125));
1
  • 运行结果:

The Metting is on 星期日,11 11 9 2020,at 01:44 AM。

# 12.5. FormatFloat

function FormatFloat(const Format: String; value: Extended): string;
1
部分 说明
Format 是一个字符串表达式,指定格式化所使用的格式
Value 指定要格式化的内容
  • 返回值:返回将浮点数类型以指定格式转换成的字符串。

  • 示例:

下方表格展示参数的转换形式。

格式化字符串 1234 -1234 0.5 0 命令
为空时 1234 -1234 0.5 0 FormatFloat('',0.5)
0 1234 -1234 1 0 FormatFloat('0',0.5)
0.00 1234.00 -1234.00 0.50 0.00 FormatFloat('0.00',0.5)
#.## 1234 -1234 .5 FormatFloat('#.##',0.5)
#,##0.00 1,234.00 -1,234.00 0.50 0.00 FormatFloat('#,##0.00',0.5)
#,##0.00;(#,##0.00) 1,234.00 (1,234.00) 0.50 0.00 FormatFloat('#,##0.00;(#.##0.00)',0.5)
#,##0.00;;Zero 1,234.00 -1,234.00 0.50 0.00 FormatFloat('#,##0.00;;Zero',0.5)
0.000E+00 1.234E+03 -1.234E+03 5.000E-01 0.000E+00 FormatFloat('0.000E+00',0.5)
#.###E-0 1.234E3 -1.234E3 5E-1 0E0 FormatFloat('#.###E-0',0.5)

# 12.6. StrFmt

function StrFmt(Buffer, Format: PAnsiChar; const Args: array of const): PAnsiChar;
1
  • 该函数按指定方式格式化一个数组常量的字符指针形式。
部分 说明
Buffer 是一个字符类型的指针,将格式化后的字符串保存在该变量中。
Format 是一个字符串表达式,指定格式化所使用的格式。
Args 是一个数组表达式,指定要格式化的内容
FormatSettings 是一个记录类型,包含了系统预定义的格式化方法
  • 返回值:该函数返回格式化后的字符指针。

  • 示例:

var
  Str: PAnsiChar;
begin
  GetMem(Str,255);
  StrFmt(Str,'x=%.5d',[2]);
  ShowMessage(Str);
  FreeMem(Str,255);
end;
1
2
3
4
5
6
7
8
  • 运行结果:

x=00002

# 12.7. StrLFmt

function StrLFmt(Buffer: PAnsiChar; MaxBufLen: Cardinal; Format: PAnsiChar; const Args: array of const): PAnsiChar;
1
  • 该函数按指定方式和长度格式化一个数组常量的字符指针形式。
部分 说明
Buffer 是一个字符类型的指针,将格式化后的字符串保存在该变量中
MaxLen 是一个整型值,指定格式化时的字符串长度
Format 是一个字符串表达式,指定格式化所使用的格式
Args 是一个数组表达式,指定要格式化的内容
  • 返回值:该函数返回字符串的指针地址。

  • 示例:

var
  Str: PAnsiChar;
begin
  GetMem(Str,255);
  StrLFmt(Str,8,'x=%d|1234',[1024]);
  ShowMessage(Str);
  FreeMem(Str,255);
end;
1
2
3
4
5
6
7
8
  • 运行结果:

x=1024|1

# 12.8. WideFormat

function WideFormat(const Format: WideString; const Args: array of const): WideString;
1
  • 该函数按指定方式格式化一个数组常量的多字节字符形式。
部分 说明
Format 是一个字符串表达式,指定格式化所使用的格式
Args 是一个数组表达式,指定要格式化的内容
FormatSettings 是一个记录类型,包含了系统预定义的格式化方法
  • 返回值:返回按指定方式格式化一个数组常量的多字节字符形式。

  • 示例:

var
  S: String;
begin
  S := WideFormat('%1:s %0:s',['How Are You!','Hello!']);
  ShowMessage(S);
end;
1
2
3
4
5
6
  • 运行结果:

Hello! How Are You!

# 12.9. WideFormatBuf

function WideFormatBuf(var Buffer; BufLen: Cardinal; const Format; FmtLen: Cardinal; const Args: array of const): Cardinal;
1
  • 该函数按指定方式格式化一个数组常量至缓冲区Buffer中。
部分 说明
Buffer Cardinal类型的缓冲区
BufLen 缓冲区的大小
Format 指定格式化所使用的格式
FmtLen 格式化表达式的长度
Args 数组表达式,指定要格式化的内容
FormatSettings 记录类型,包含了系统预定义的格式化方法
  • 返回值:返回缓冲区的函数。

  • 示例:WideFmtStr程序是通过WideFormatBuf函数来实现的。

procedure WideFmtStr(var Result: string; const Format: string; const Args: array of const);
var
  Len,BufLen: Integer;
  Buffer: array[0..4095] of Char;
begin
  BufLen := SizeOf(Buffer);
  if Length(Format) < (sizeof(Buffer)-(sizeof(Buffer) div 4)) then
    Len := WideFormatBuf(Buffer,SizeOf(Buffer) - 1, Pointer(Format)^, Length(Format),Args)
  else
  begin
    BufLen := Length(Format);
    Len := BufLen;
  end;
  if Len >= BufLen -1 then
  begin
    while Len >= BufLen - 1 do
    begin
      Inc(BufLen,BufLen);
      Result := '';
      SetLength(Result,BufLen);
      Len := WideFormatBuf(Pointer(Result)^,BufLen - 1,Pointer(Format)^, Length(Format),Args);
    end;
    SetLength(Result,Len);
  end
  else
  SetString(Result,Buffer,Len);
end;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27

# 13. 对话框函数

# 13.1. InputBox

function InputBox(const ACaption,APrompt,ADefault:string):string;
1
  • 该函数显示一个带有编辑组件的消息对话框,为用户提供输入文本的功能。
部分 说明
ACaption 消息对话框的标题
APrompt 消息对话框提示信息
ADefault 消息对话框首次出现时编辑框中显示的信息
  • 返回值:返回用户在对话框中输入的字符串。

  • 示例:

var
  S: string;
begin
  S := InputBox('提示','请输入内容','');
  ShowMessage('你输入的内容是:' + S);
end;
1
2
3
4
5
6

  执行上述语句后,在输入框中输入的内容会显示在接下来弹出的消息对话框中。

# 13.2. InputQuery

function InputQuery(const ACaption,APrompt: String; var Value: String):Boolean;
1
  • 该函数显示一个带有编辑组件的消息对话框,为用户提供输入文本的功能,并判断用户是否按下OK按钮。
部分 说明
ACaption 消息对话框的标题
APrompt 消息对话框提示信息
AValue 消息对话框首次出现时编辑框中显示的字符串,并得到用户在消息对话框中输入的字符串
  • 返回值:如果选择了消息对话框中的OK按钮,函数返回True,否则返回False。

  • 示例:

var
  S: string;
begin
  InputQuery('提示','请输入内容',S);
  ShowMessage('你输入的内容是:' + S);
end;
1
2
3
4
5
6

  执行该语句后,如果消息对话框中选的是OK按钮,则flag=True,S获得用户输入的信息。

# 13.3. LoginDialog

function LoginDialog(const ADatabaseName: string; var AUserName, APassword: string): Boolean;
1
  • 生成标准的Login对话框,提示用户输入有效的用户名和口令,以连接服务器。
部分 说明
ADatabaseName 要求访问的数据库
AUserName 对话框返回用户输入的用户名
APassword 对话框返回用户输入的密码
  • 返回值:如果用户选择对话框的OK按钮返回True,否则返回False。

  • 示例:

var
  user,pass: String;
begin
   if (LoginDialog('test',user,pass)) then
   begin
     ShowMessage('输入的用户名:' + user);
   end;
end;
1
2
3
4
5
6
7
8
  • 运行结果:运行后会弹出一个标准登录对话框,输入后返回用户名信息。

# 13.4. LoginDialogEx

function LoginDialogEx(const ADatabaseName: string; var AUserName, APassword: string; NameReadOnly: Boolean): Boolean;
1
  • 该函数用于生成标准的Login对话框,提示用户输入有效的用户名和口令,以连接服务器。
部分 说明
ADatabaseName 要求访问的数据库
AUserName 对话框返回用户输入的用户名
APassword 对话框返回用户输入的密码
NameReadOnly 设定用户是否可以修改对话框中的用户名
  • 返回值:如果用户选择对话框的"OK"按钮,函数返回True,否则函数返回False。

  • 示例:

var
  user,pass: String;
begin
   if (LoginDialogEx('test',user,pass, False)) then
   begin
     ShowMessage('输入的用户名:' + user);
   end;
end;
1
2
3
4
5
6
7
8
  • 运行结果:运行后会弹出一个标准登录对话框,输入后返回用户名信息。

# 14. 窗口控制实用程序

# 14.1. FindControl

function FindControl(Handle: HWnd): TWinControl;
1
  • 函数返回一个由窗口化句柄指定的窗口化组件,如果Handle不是一个有效的窗口化句柄,则返回Nil。
部分 说明
Handle 窗体可视组件的句柄
  • 返回值:返回TWinControl可视类组件。

  • 示例:

begin
  ShowMessage(FindControl(FThis.Handle).Name);
end;
1
2
3
  • 运行结果:显示当前显示窗口组件的名称。

# 14.2. GetComCtlVersion

function GetComCtlVersion: Integer;
1
  • 该函数返回安装的ComCtl32.DLL版本号。

  • 返回值:整数类型,返回安装的版本号。

  • 示例:

begin
  ShowMessage(IntToStr(GetComCtlVersion));
end;
1
2
3
  • 运行结果:运行结果根据各机器安装软件版本的不同而有所差异。

# 14.3. GetParentForm

function GetParentForm(Control: TControl; TopForm: Boolean = True): TCustomForm;
1

该函数返回包含指定空间的窗体属性。

部分 说明
Control 窗体中包含的控件
  • 返回值:返回包含指定空间的窗体属性。

  • 示例:

begin
  ShowMessage(GetParentForm(FThis.Button1).Name);
end;
1
2
3
  • 运行结果:

Main

# 15. 指针相关函数

# 15.1. FreeAndNil

function FreeAndNil(var Obj);
1
  • 该函数用于释放指定对象,并设置其为空。
部分 说明
Obj 任何类的实例
  • 示例:
FreeAndNil(FThis.Button1);
FreeAndNil(s);
1
2

  执行该语句后Obj对象将被释放,并且设置其值为Nil。

# 16. 内存管理函数

# 16.1. New

procedure New(var P:Pointer);
1
  • 该过程创建一个新的动态变量,并把指针P指向这个新创建的变量。分配的内存大小由P指针表示的类型决定。
部分 说明
P Pointer类型,表示任何指针变量
var
  P: PInteger;
begin
  New(P);
  P^ := 12333;
  ShowMessage(IntToStr(P^));
end;
1
2
3
4
5
6
7
纺织印染业ERP设计实务
系统程序

← 纺织印染业ERP设计实务 系统程序→

Copyright © 2021-2025 爱招飞IsoFace | ALL Rights Reserved
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式