当前日期减去8小时,怎样才能得到正确的日期??

haynes 2003-08-20 05:07:11
如何取得世界时?
或者在当前日期减8小时也行。
但怎样才能得到正确的世界时,因为减8小时会遇到好多问题,如月份如何计算,二月如何处理,年如何处理。
可不可以写一个函数,回传当前时间减8小时后的时间。
...全文
613 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
wypepsi 2003-08-24
  • 打赏
  • 举报
回复
Function GetDateID(i:integer;date:string):String;
var
Year, Month, Day:Word;
StrYear,StrMonth,StrDay:String;
begin
if date='next' then DecodeDate(Now+1, Year, Month, Day);
if date='prior' then DecodeDate(Now-1, Year, Month, Day);
if date='current' then DecodeDate(Now, Year, Month, Day);
if date='GLWZ' then DecodeDate(Now-0.33, Year, Month, Day);

if Year<10 then StrYear:='0'+IntToStr(Year)
else StrYear:=IntToStr(Year);

if Month<10 then StrMonth:='0'+IntToStr(Month)
else StrMonth:=IntToStr(Month);

if Day<10 then StrDay:='0'+IntToStr(Day)
else StrDay:=IntToStr(Day);

case i of
0:Result:=StrYear+StrMonth+StrDay;
1:Result:=StrMonth+StrDay;
2:Result:=StrYear+'年'+StrMonth+'月'+StrDay+'日';
3:Result:=StrMonth+'月'+StrDay+'日';
4:Result:=StrDay+StrMonth;
end;
end;

我自己的函数 气象方面用的很多 肯定管用 自己试试
myadvice 2003-08-24
  • 打赏
  • 举报
回复
TO:楼主, chechy(简简单单的活) 大哥都发言了,你真够有脸面。
Stack 2003-08-24
  • 打赏
  • 举报
回复
to fuyifan(程序执著者) ( ) 信誉:98
简单的加减为什么不行,Stack(公冶长) 你说说

===============================================
我没说加减不行阿, 你看看我怎么说的啊
ly_liuyang 2003-08-23
  • 打赏
  • 举报
回复
就是那么简单的
kingofghost 2003-08-23
  • 打赏
  • 举报
回复
学习 up
fuyifan 2003-08-22
  • 打赏
  • 举报
回复
简单的加减为什么不行,Stack(公冶长) 你说说
haynes 2003-08-22
  • 打赏
  • 举报
回复
thanks
haynes 2003-08-22
  • 打赏
  • 举报
回复
谢了,各位
hiflower 2003-08-20
  • 打赏
  • 举报
回复
uses DateUtils

var
NewTime:TDateTime;

NewTime:=IncHours(Now,-8);
Stack 2003-08-20
  • 打赏
  • 举报
回复
简单的加减丫, 这里是不是Delphi的板块啊
大地精灵 2003-08-20
  • 打赏
  • 举报
回复
如果要日期的话就不Cur处理一下
StrToDate(DateToStr(Cur))
大地精灵 2003-08-20
  • 打赏
  • 举报
回复
var
cur:TDateTime;
begin
Cur := Now - StrToTime('8:00:00');
Showmessage(DateTimeToStr(Cur));
end;

不关现在是什么时间都不会有问题,经过测试啦,呵呵
Cipherliu 2003-08-20
  • 打赏
  • 举报
回复
Now-1/3就行了
huojiehai 2003-08-20
  • 打赏
  • 举报
回复
用这个最简单
function GetAdd8(OldDatetime: TDatetime): TDatetime;
begin
result := OldDatetime - 1/3;//1/3就是8个小时
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Showmessage(DateTimeTostr(GetAdd8(Now)))
end;
jpyc 2003-08-20
  • 打赏
  • 举报
回复
http://218.56.11.178:8020/web/index.aspx

-> 下载基地->例程-经典应用->时间差计算大全/得到n小时前的时间

得到n小时前的时间,当然日期就没问题了!
nhdj 2003-08-20
  • 打赏
  • 举报
回复
减去8个小时,需要考虑:
1:是否到了前一天
2:是否到了前一个月
3:是否到了前一年
yurenjf 2003-08-20
  • 打赏
  • 举报
回复
保证管用,不信试试
var
td: _SYSTEMTIME;
ft: FILETIME;
dt:DateTime;
.....
DateTimeToSystemTime(dt, td);
SystemTimeToFileTime(td,ft);
LocalFileTimeToFileTime(ft,ft);
FileTimeToSystemTime(ft,td);
SetSystemTime(td);
......
wtj1978 2003-08-20
  • 打赏
  • 举报
回复
在DateUtils中的DaysBetween函数
初心2 2003-08-20
  • 打赏
  • 举报
回复
now
初心2 2003-08-20
  • 打赏
  • 举报
回复
date-1/3不行吗?
加载更多回复(1)

5,386

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧