关于时间字符串的运算(100分)

  • 主题发起人 主题发起人 a_fi
  • 开始时间 开始时间
A

a_fi

Unregistered / Unconfirmed
GUEST, unregistred user!
AnsiString ab=DBGridTopic->DataSource->DataSet->Fields->Fields[3]->AsString;
这句的意思是从数据库中取出时间字符串,例如:"02-5-29 17:27:01"
我想对这种类型的时间字符串做以下运算,请给我答案好吗?
①只保留日期,剩下“02-5-29”
②只保留时间,剩下“17:27:01”
③将这个时间字符串转换成可以计算的时间,比方说现在的时间是:03-3-16 20:28,那么三天前的时间是03-3-13 20:28,三个月前的时间是 02-12-16 20:29,
这种计算是怎么来做的?这些如何用程序实现呢?
④如何计算日期对应的星期几呢?
⑤关于日期各个民族的表示方法不同,这对编程有多大影响,如何避免在不同语言的操作系统中出现的错误?
 
是SQLSERVER么时间计算最好写到后台去,SQLSERVER提供了丰富的时间计算的函数
 
1,2:用formatdatetime函数
3:可以用减去天数得到
4:SQLSERVER里有相应的函数,不过DELPHI里怎么实现就不清楚了
5:个人觉得不必考虑
 
var d:TDateTime;
Str:String;
i:integer;
DateSeparator:='-';
//设置日期分格符
ShortDateFormat:='yyyy/mm/dd';
//设置日期格式
d:=DBGridTopic->DataSource->DataSet->Fields->Fields[3]->AsDateTime;
问题一:Str:=DateToStr(DateOf(d));
问题二:Str:=TimeToStr(TimeOf(d));
问题三:d:=IncDay(d,3) d:=IncDay(d,-3) 加天 减天
d:=IncMonth(d,3) d:=IncMonth(d,-3) 加月,减月
问题四:i:=DayOfWeek(d);1代表星期天,7代表星期六
问题五:设置ShortDateFormat,LongTimeFormat全局变量设置.
 
接受答案了.
 
后退
顶部