Delphi的StringReplace 字符串替换函数
function StringReplace (const S, OldPattern, NewPattern: string; Flags: TReplaceFlags): string; rfReplaceAll:全部替换 rfIgnoreCase:忽略大小写 For Example: var aStr: String; begin aStr := 'This is a book, not a pen!'; ShowMessage(StringReplace (aStr, 'a', 'two', []));//This is two book, not a pen!只替换了第一个符合的字 ShowMessage(StringReplace (aStr, 'a', 'two', [rfReplaceAll]));//This is two book, not two pen!替换了所有符合的字 aStr := 'This is a book, not A pen!'; ShowMessage(StringReplace (aStr, 'a', 'two', [rfReplaceAll]));//This is two book, not A pen!只替换了符合的字(小写a) ShowMessage(StringReplace (aStr, 'a', 'two', [rfReplaceAll, rfIgnoreCase]));//This is two book, not two pen!不管大小写替换了所有符合的字 end;
Delphi中chr这个函数的作用是什么
字符函数,chr(x) 返回x的ASCII字符 例:chr(65)返回字符串'A'
Delphi中的split函数
Delphi中的split函数 procedure TForm1.Button1Click(Sender: TObject); var s1:TStringList; begin s1:=split('11111111:2222:33333:44444',':'); Memo1.Lines.AddStrings(s1); s1.Free; end;function split(s,s1:string):TStringList; begin Result:=TStringList.Create; while Pos(s1,s)>0 do begin Result.Add(Copy(s,1,Pos(s1,s)-1)); Delete(s,1,Pos(s1,s)); end; Result.Add(s); end; procedure TForm1.Button1Click(Sender: TObject); var s1:TStringList; begin s1:=split('11111111:2222:33333:44444',':'); Memo1.Lines.AddStrings(s1); s1.Free; end; 一、直接使用如下函数(注:ch只能是单字符,如键盘上英文状态下的字符) function SplitString(const Source,ch:String):TStringList; var temp:String; i:Integer; begin Result:=TStringList.Create; //如果是空自符串则返回空列表 if Source='' then exit; temp:=Source; i:=pos(ch,Source); while i<>0 do begin Result.add(copy(temp,0,i-1)); Delete(temp,1,i); i:=pos(ch,temp); end; Result.add(temp); end; 二、直接使用TStringList procedure TForm1.Button3Click(Sender: TObject); var Str:String; ResultList:TStringList; I:Integer; begin str:= '南京~信息~工程~大学'; ResultList := TStringList.Create; try ResultList.Delimiter := '~'; ResultList.DelimitedText := str; for I:= 0 to ResultList.Count-1 do begin Memo1.Lines.Add(ResultList.Strings[I]); end; finally FreeAndNil(ResultList); end; end; 三、支持特殊字符版(ch可以为字符串,如'aa') function SplitString(const Source,ch:String):TStringList; var Temp:String; I:Integer; chLength:Integer; begin Result:=TStringList.Create; //如果是空自符串则返回空列表 if Source='' then Exit; Temp:=Source; I:=Pos(ch,Source); chLength := Length(ch); while I<>0 do begin Result.Add(Copy(Temp,0,I-chLength+1)); Delete(Temp,1,I-1 + chLength); I:=pos(ch,Temp); end; Result.add(Temp); end;
delphi DateUtils强大的时间功能集成
初步说明: CompareDate 比较两个日期时间值日期部分的大小 CompareDateTime 比较两个日期时间值的大小 CompareTime 比较两个日期时间值时间部分的大小 DateOf 去除日期时间值的时间部分 DateTimeToJulianDate 转换日期时间值为儒略日 DateTimeToModifiedJulianDate 转换日期时间值为改进的儒略日 DateTimeToUnix 转换日期时间值为Unix/Linus日期时间值 Day of week 常量 ISO 8601标准中一周各天顺序的 常量 DayOf 返回一个日期时间值的天 DayOfTheMonth 返回一个日期时间值的天 DayOfTheWeek 返回一个日期时间值是那星期的第几天 DayOfTheYear 返回一个日期时间值是那年的第多少天 DaysBetween 返回两个日期时间值之间相差的整数天数 DaysInAMonth 返回指定年、月的天数 DaysInAYear 返回指定年的天数 DaysInMonth 返回一个日期时间值的那个月的天数 DaysInYear 返回一个日期时间值的那一年的天数 DaySpan 返回两个日期时间值之间相差的小数天数 DecodeDateDay 返回一个日期时间值的年份和是一年的第多少天 DecodeDateMonthWeek 返回一个日期时间值的年、月、那个月的第几周、那周的第几天 DecodeDateTime 返回一个日期时间值的年、月、日、时、分、秒、毫秒 DecodeDateWeek 返回一个日期时间值的年、一年的第多少周、一周的第几天 DecodeDayOfWeekInMonth 返回一个日期时间值的年、月、一周的第几天、那个月的第几个星期几 EncodeDateDay 返回指定年和一年的第多少天的日期时间值 EncodeDateMonthWeek 返回指定年、月、那个月的第几周、那周的第几天的日期时间值 EncodeDateTime 返回指定年、月、日、时、分、秒,毫秒返的日期时间值 EncodeDateWeek 返回指定年、那年的第多少周、那周的第几天的日期时间值 EncodeDayOfWeekInMonth 返回指定年、月、那个月的第几个星期几的日期时间值 EndOfADay 返回指定年、那年第多少天的最后一秒的日期时间值 EndOfAMonth 返回指定年、月的最后一天最后一秒的日期时间值 EndOfAWeek 返回指定年、那年第多少周、那周第几天的最后一秒的日期时间值 EndOfAYear 返回指定年的最后一天最后一秒的日期时间值 EndOfTheDay 返回指定日期时间值的那一天最后一秒的日期时间值 EndOfTheMonth 返回指定日期时间值的那个月的最后一天最后一秒的日期时间值 EndOfTheWeek 返回指定日期时间值的那一周的最后一天最后一秒的日期时间值 EndOfTheYear 返回指定日期时间值的那一年最后一天最后一秒的日期时间值 HourOf 返回指定日期时间值的小时部分 HourOfTheDay 返回指定日期时间值的小时部分. HourOfTheMonth 返回从指定日期时间值的那个月的第一天0点到指定日期的小时已经度过的小时数 HourOfTheWeek 返回从指定日期时间值中那一周第一天0点到指定日期的那个小时 已经度过的小时数 HourOfTheYear 返回从指定日期时间值中 那一年第一天0点到指定日期的那个小时已经度过的小时数 HoursBetween 返回两个指定日期时间值之间相差的小时数 HourSpan 返回两个指定日期时间值之间相差的小时数(包括小数部分) IncDay 返回日期时间值向后推移指定天数后的值 IncHour 返回日期时间值向后推移指定小时数的值 IncMilliSecond 返回日期时间值向后推移指定毫秒数的值 IncMinute 返回日期时间值向后推移指定分钟数的值 IncSecond 返回日期时间值向后推移指定秒数的值 IncWeek 返回日期时间值向后推移指定星期数的值 IncYear 返回日期时间值向后推移指定星期数的值 IsInLeapYear 判断指定的日期时间值的年份是否为闰年 IsPM 判断指定的日期时间值的时间是否是中午12:0:0之后 IsSameDay 判断一个日期时间值与标准日期时间值是否是同一天 IsToday 判断一个日期时间值是否是当天 IsValidDate 判断指定的年、月、日是否是有效的日期 IsValidDateDay 判断指定的年、该年的天数是否是该年有效的天数 IsValidDateMonthWeek 判断指定的年、月、该月的第几周、该周的第几天是否是有效的日期 IsValidDateTime 判断指定的年、月、日、时、分、秒、毫秒是否是有效的日期时间值 IsValidDateWeek 判断指定的年、该年的第多少周、该周第几天是否是有效的日期 IsValidTime 判断指定的时、分、秒、毫秒是否是有效的时间 JulianDateToDateTime 转换儒略日期为日期时间值 MilliSecondOf 返回指定日期时间值的毫秒部分 MilliSecondOfTheDay 返回指定日期时间值的那天0时0分0秒0毫秒开始到其指定时间的毫秒数 MilliSecondOfTheHour 返回指定日期时间值的那一小时0分0秒0毫秒开始到其指定时间的毫秒数 MilliSecondOfTheMinute 返回指定日期时间值的那一分钟0秒0毫秒开始到其指定时间的毫秒数 MilliSecondOfTheMonth 返回指定日期时间值的那个月1日分钟0秒0毫秒开始到其指定时间的毫秒数 MilliSecondOfTheSecond 返回指定日期时间值的毫秒部分 MilliSecondOfTheWeek 返回指定日期时间值的那周星期一0时0分0秒0毫秒到其指定时间的毫秒数 MilliSecondOfTheYear 返回指定日期时间值的那年1月1日0时0分0秒0毫秒到其指定时间的毫秒数 MilliSecondsBetween 返回两个指定日期时间值之间相差的毫秒数(整数) MilliSecondSpan 返回两个指定日期时间值 之间相差的毫秒数(小数) MinuteOf 返回指定日期时间值 分钟部分 MinuteOfTheDay 返回指定日期时间值的那天0时0分开始到其指定时间的分钟数 MinuteOfTheHour 返回指定日期时间值的分钟部分 MinuteOfTheMonth 返回指定日期时间值的那个月1日0时0分开始到其指定时间的分钟数 MinuteOfTheWeek 返回指定日期时间值的那周第1天0时0分开始到其指定时间的分钟数 MinuteOfTheYear 返回指定日期时间值的那年1月1日0时0分开始到其指定时间的分钟数 MinutesBetween 返回两个指定日期时间值之间相差的分钟数(整数) MinuteSpan 返回两个指定日期时间值之间相差的分钟数(包含小数) ModifiedJulianDateToDateTime 转换修正的儒略日为日期时间值 MonthOf 返回指定日期时间值的月份部分 MonthOfTheYear 返回指定日期时间值的月份部分 MonthsBetween 返回两个指定日期时间值之间相差的月份(整数) MonthSpan 返回两个指定日期时间值之间相差的月份(包含小数) NthDayOfWeek 返回指定日期时间值该月的第几个星期几 OneHour 常量 Delphi与时间成反比的常量 OneMillisecond 常量 Delphi与时间成反比的常量 OneMinute 常量 Delphi与时间成反比的常量 OneSecond 常量 Delphi与时间成反比的常量 RecodeDate 替换指定日期时间值的日期部分 RecodeDateTime 选择替换指定日期时间值 RecodeDay 替换指定日期时间值 的日部分 RecodeHour 替换指定日期时间值 的小时部分 RecodeMilliSecond 替换指定日期时间值的毫秒部分 RecodeMinute 替换指定日期时间值的分钟部分 RecodeMonth 替换指定日期时间值的月份部分 RecodeSecond 替换指定日期时间值的秒部分 RecodeTime 替换指定日期时间值的时间部分 RecodeYear 替换指定日期时间值的年份部分 SameDate 判断两个日期时间值的年、月、日部分是否相同 SameDateTime 判断两个日期时间值的年、月、日、时、分、秒、毫秒是否相同 SameTime 判断两个日期时间值的时、分、秒、毫秒部分是否相同 SecondOf 返回指定日期时间值的秒部分 SecondOfTheDay 返回从指定日期时间值那天0时0分0秒到其指定时间的秒数 SecondOfTheHour 返回从指定日期时间值那小时0分0秒到其指定时间的秒数 SecondOfTheMinute 返回从指定日期时间值那分钟0秒到其指定时间的秒数 SecondOfTheMonth 返回从指定日期时间值那个月1日0时0分0秒到其指定时间的秒数 SecondOfTheWeek 返回从指定日期时间值所在周的星期一0时0分0秒到其指定时间的秒数 SecondOfTheYear 返回从指定日期时间值那年的1月1日0时0分0秒到其指定时间的秒数 SecondsBetween 返回两个指定日期时间值之间相差的秒数(整数) SecondSpan 返回两个指定日期时间值之间相差的秒数(包含小数) StartOfADay 返回指定那天开始(0时0分0秒0毫秒)的日期时间值 StartOfAMonth 返回指定年、月的第一天开始(0时0分0秒0毫秒)的日期时间值 StartOfAWeek 返回指定年、第多少周、第几天开始(0时0分0秒0毫秒)的日期时间值 StartOfAYear 返回指定年开始(1月1日0时0分0秒0毫秒)的日期时间值 StartOfTheDay 返回指定日期时间值那天开始(0时0分0秒0毫秒)的日期时间值 StartOfTheMonth 返回指定日期时间值那个月开始(1日0时0分0秒0毫秒)的日期时间值 StartOfTheWeek 返回指定日期时间值那周开始(第一天0时0分0秒0毫秒)的日期时间值 StartOfTheYear 返回指定日期时间值那年开始(1月1日0时0分0秒0毫秒)的日期时间值 TimeOf 返回指定日期时间值的时间部分 Today 返回当天的日期 Tomorrow 返回下一天的日期 TryEncodeDateDay 计算指定年、该年第多少天的日期时间值 TryEncodeDateMonthWeek 计算指定年、月、该月第几周、该周第几天的日期时间值 TryEncodeDateTime 转换指定年、月、日、时、分、秒、毫秒为日期时间值 TryEncodeDateWeek 转换指定年、该第多少周、该周第几天为日期时间值 TryEncodeDayOfWeekInMonth 转换指定年、月、该月第几个星期几为日期时间值 TryJulianDateToDateTime 转换指定儒略日为日期时间值 TryModifiedJulianDateToDateTime 转换指定修正儒略日为日期时间值 TryRecodeDateTime 选择替换指定日期时间值的某些部分 UnixToDateTime 转换Unix或Linux日期、时间值为Delphi日期时间值 WeekOf 返回指定日期时间值是某年的第多少周 WeekOfTheMonth 返回指定日期时间值是某月的第 几周 WeekOfTheYear 返回指定日期时间值是某年的第多少周 WeeksBetween 返回两个指定日期时间值 之间相差多少周(整数) WeeksInAYear 返回指定的年有多少周 WeeksInYear 返回指定日期时间值的那年有多少周 WeekSpan 返回两个指定日期时间值之间相差多少周(包含小数) WithinPastDays 判断两个日期之间相差 是否在指定天数的范围内 WithinPastHours 判断两个日期 时间值之间相差是否在指定小时的范围内 WithinPastMilliSeconds 判断两个日期时间值之间相差是否在指定毫秒的范围内 WithinPastMinutes 判断两个日期时间值之间相差是否在指定分钟的范围内 WithinPastMonths 判断两个日期时间值之间相差是否在指定月份的范围内 WithinPastSeconds 判断两个日期时间值之间相差是否在指定秒数的范围内 WithinPastWeeks 判断两个日期时间值之间相差是否在指定星期数的范围内 WithinPastYears 判断两个日期时间值之间相差是否在指定年数的范围内 YearOf 返回指定日期时间值中年份部分 YearsBetween 返回两个指定日期时间值之间相差的年份数(整数) YearSpan 返回两个指定日期时间值之间相差的年份数(包含小数) Yesterday 返回当前日期之前一天(昨天)的日期
求时间差
如 edit1内的内容为“12:10:01”(这个是时间是从数据库中读取的) edit2内容是用时钟读取的如“12:20:01” 我的要求就是求出他们的分差或秒差(分差更好) 例: edit2.text-edit1.text=10 这个10怎么能够得到 请高手告诉我一下 这个我只要他们之间的差 说明一下,EDIT1中的数据是不变的 EDIT2.TEXT-EDIT1.TEXT(这个是不能用的) 我要的是详细的代码 因为我是小白 用以下方法就可以了,已测试: procedure TForm1.Button1Click(Sender: TObject); var TimeStamp : TTimeStamp; time1, time2 : TDateTime; timeDiff : integer; begin time1 := strToTime(edit1.text); // 转换成时间格式 time2 := strToTime(edit2.text); TimeStamp := DateTimeToTimeStamp(time2 - time1); // 算出相差值 Dec(TimeStamp.Date, TTimeStamp(DateTimeToTimeStamp(0)).Date); timeDiff := (TimeStamp.Date*24*60*60)+(TimeStamp.Time div 1000); timeDiff := round(timeDiff/60); // 转换成分钟 showmessage('Diff in min = '+inttostr(timeDiff)); // 显示 end;