delphi7中怎么仅仅更改系统的日期,而不更改系统的时间?

ddvddt1 2016-09-30 10:15:29
procedure TForm1.btn1Click(Sender: TObject);
var
d1:TDate;
cd:string;
systemtime:Tsystemtime;
begin
cd:='2016-09-09' ;
d1:=StrToDate(cd);
DateTimeToSystemTime(d1,systemtime);
SetLocalTime(SystemTime); //这么已设置,系统的日期是改了,但是时间从0):00:00开始了
end;
end.
请问怎么才能只更改日期而不更改时间?多谢!
...全文
1819 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
sseedd 2017-08-29
  • 打赏
  • 举报
回复
procedure chgDateto(dto:TDate); var newDatetime:TDateTime; systemtime:Tsystemtime; begin newDatetime:=now() + (dto - date); DateTimeToSystemTime(newDatetime,systemtime); SetLocalTime(systemtime); end;
ddvddt1 2017-01-24
  • 打赏
  • 举报
回复
根据lyhoo163老师和DelphiGuy朋友的提醒,得到我要我的结果,谢谢大家,祝大家鸡年吉祥!
ddvddt1 2016-11-22
  • 打赏
  • 举报
回复
各位老师,3楼的方法不是一个十分完美的方法,缺点就是如果我每天运行好多次程序的话,系统时间就会变慢很多,这不是我想要的,我想要的是仅仅更改日期,而不对时间做任何修改,请问各位老师delphi7中是否可以实现我的上述要求。谢谢!
引用 5 楼 lyhoo163 的回复:
[quote=引用 4 楼 leeky 的回复:] D2 : TDateTime; ....... D2 := Now(); d1 := d1+ D2 - floor(D2); ....... 友情提示,直接使用'2016-09-09'在某些电脑上会出错的,因为那些机器上系统时间格式可能用'/'作分隔符.如果用图形界面,可以弄两个TDateTimePicker,一个显示日期,一个显示时间,那么 d1 = floor(dtpDay.DateTime) + dtpTime.DateTime - floor(dtpTime.DateTime); 后面就是你的设置代码了。
DateSeparator:='-'; 将日期分隔符,设置为“-”。[/quote]
lyhoo163 2016-11-22
  • 打赏
  • 举报
回复
引用 3 楼 lyhoo163 的回复:
procedure TForm1.Button1Click(Sender: TObject);
var
  d1:TDatetime;
  cd:string;
  systemtime:Tsystemtime;
  S:string;
begin
  DateSeparator:='-';
  ShortDateFormat:='yyyy-MM-dd';
  LongDateFormat:='yyyy''年'',MM''月'',dd''日''';
  TimeSeparator:=':';
  DateTimetoString(S,'hh:nn:ss',now);
  cd:='2016-09-30 '+S;
  d1:=StrToDateTime(cd);
  DateTimeToSystemTime(d1,systemtime);
  SetLocalTime(SystemTime);
end;
上机测试正常。
写代码时,你可以加上执行代码的时间差。此值,因计算机的CPU速度不一。你写段代码计算一下,加入此值,即可了。
  • 打赏
  • 举报
回复
加上若干毫秒的过载。
dai78 2016-10-17
  • 打赏
  • 举报
回复
读出系统时间,然后AddDays、AddYear
lyhoo163 2016-10-14
  • 打赏
  • 举报
回复
引用 4 楼 leeky 的回复:
D2 : TDateTime; ....... D2 := Now(); d1 := d1+ D2 - floor(D2); ....... 友情提示,直接使用'2016-09-09'在某些电脑上会出错的,因为那些机器上系统时间格式可能用'/'作分隔符.如果用图形界面,可以弄两个TDateTimePicker,一个显示日期,一个显示时间,那么 d1 = floor(dtpDay.DateTime) + dtpTime.DateTime - floor(dtpTime.DateTime); 后面就是你的设置代码了。
DateSeparator:='-'; 将日期分隔符,设置为“-”。
leeky 2016-10-14
  • 打赏
  • 举报
回复
D2 : TDateTime; ....... D2 := Now(); d1 := d1+ D2 - floor(D2); ....... 友情提示,直接使用'2016-09-09'在某些电脑上会出错的,因为那些机器上系统时间格式可能用'/'作分隔符.如果用图形界面,可以弄两个TDateTimePicker,一个显示日期,一个显示时间,那么 d1 = floor(dtpDay.DateTime) + dtpTime.DateTime - floor(dtpTime.DateTime); 后面就是你的设置代码了。
zbdzjx 2016-09-30
  • 打赏
  • 举报
回复
读出当前时间,改系统日期时,加上这个时间。
lyhoo163 2016-09-30
  • 打赏
  • 举报
回复
procedure TForm1.Button1Click(Sender: TObject);
var
  d1:TDatetime;
  cd:string;
  systemtime:Tsystemtime;
  S:string;
begin
  DateSeparator:='-';
  ShortDateFormat:='yyyy-MM-dd';
  LongDateFormat:='yyyy''年'',MM''月'',dd''日''';
  TimeSeparator:=':';
  DateTimetoString(S,'hh:nn:ss',now);
  cd:='2016-09-30 '+S;
  d1:=StrToDateTime(cd);
  DateTimeToSystemTime(d1,systemtime);
  SetLocalTime(SystemTime);
end;
上机测试正常。
jjpweb 2016-09-30
  • 打赏
  • 举报
回复
诶,同上。。。。
《C/S程序综合设计》课题设计要求 实验课题一、人员档案的管理、物料档案管理 设计实现对企业人员基本情况的档案的输入、删除与修改,企业人员基本情况主要包括:人员代码、姓名、性别、出生日期、身份证号、籍贯、家庭住址、联系电话、其它情况等。 1. 程序须包括主界面程序,程序名用“班级名+座号+main”,主界面可以通过菜单调用到其它所有子程序。 2. 人员档案的增加、修改、删除的程序,其人员档案表在数据库必须以“班级+座号+(表示人员的英文信息)”来命名,人员档案的信息管理程序也必须以“班级+座号+(表示程序名的英文信息)”来命名。其人员代码不能为空,性别必须用“男”、“女”选择方式,出生日期必须用日期控件来控制。修改、删除程序在执行修改删除操作前,都必须进行记录定位操作,所以必须有相应的查询程序,可以借用查询程序来完成记录定位。人员档案的增加、修改、删除程序也可以用三个程序名,分别编程。 3. 人员档案查询程序,程序名以“班级+座号+(表示程序名的英文信息)”来命名,可以在查询框输入人员姓名的任何一个单字,查询出含该字的所有人员。 物料档案包括物料代码、物料名称、规格型号、计量单位、库存数量、备注等字段。 1. 物料档案的增加、修改、删除程序,程序名以“班级+座号+(表示程序名的英文信息)”来命名,具体内容参考人员档案管理程序。物料表在数据库以“班级+座号+(表示程序名的英文信息)”来命名表,客户端输入时要求物料代码不为空,计量单位可以选择“件、套、公斤、吨、升、米、毫米、个”等,计量单位并可以输入其它单位名,库存数量默认为0。 2. 物料查询程序可以在通过输入框的文字进行模糊查询(物料代码、名称、规格是否含有输入框的文字),程序名用“班级+座号+(表示程序名的英文信息)”来命名。 实验课题二、简单物料进仓/出仓信息管理 企业物料进出仓的信息管理,物料进出仓的信息主要包括进出仓单号、进出仓日期、操作人员代码、备注、物料代码、进仓数量、出仓数量等 1. 企业仓库进出仓信息表以“班级+座号+(表示程序名的英文信息)”来命名,可以用一个表,也可以用二个表(一对多关系),具体表设计的思路须在报告描述。 2. 进仓程序与出仓程序可以合并,也可以分开做,名称以“班级+座号+(表示程序名的英文信息)”来命名。其操作人员必须用下拉框来选择;单号要自己编规则自动生成,单号产生规则在报告说明;进出仓日期日期控件;物料代码必须下拉框做选择;当物料出仓时必须判断出仓数量时候超过物料的库存数量,物料的库存数量在物料表可以获得该物料的库存数量。进行进仓或出仓操作时必须通过调用存储过程来实现,存储过程将操作结果返回调用者,显示成功或失败的信息。 3. 进仓、出仓的存储过程可以合并或分开做,存储过程名称以“班级+座号+(表示程序名的英文信息)”来命名,存储过程要判断物料是否存在,操作后物料库存数量是否不为负数;如果不满足条件显示,失败提示;如果满足条件,增加进出仓表记录一条,并根据进出仓物料的数量对物料表库存数量进行修改,提交数据库操作,否则回滚。 4. 进出仓单查询程序,以“班级+座号+(表示程序名的英文信息)”来命名,可以用进出仓日期起止条件,物料代码、操作人员、备注(用子串查询)来完成。 实验课题三、物料与物料进出仓信息管理 一般企业进行物料进出仓时,多在一个进出仓单号上同时对多种物料做同进或同出操作,通过程序实现多个物料在一个界面一个单号上同时实现进仓或出仓操作,如果不成功,必须全部回滚。 1. 多物料进仓出仓,可以在一个程序完成,也可以分开编程,程序名以“班级+座号+(表示程序名的英文信息)”来命名,同一单号进出仓单号、进出仓日期、操作人员必须完全相同,同一单号不能进仓与出仓同时存在,通过调用存储过程完成进出仓操作。 2. 多物料进出仓存储过程,过程名以“班级+座号+(表示程序名的英文信息)”来命名,多物料进出仓单增加到表,并修改多个物料的库存数量,失败就显示提示内容。 实验课题四、用户登录与权限设计 用户在这里就指操作人员,已经在人员档案进行管理,通过设计用户登录和用户权限的管理,实现用户按权限访问资源,管理员按要求授予用户权限,登录程序安全稳定,设计用户菜单及程序调用。人员表需要新增字段口令、用户权限。系统每个操作人员都可以作为用户,当一个用户权限修改时,不会影响其他用户;可以对每个用户单独授予某个程序的执行权,也可以收回其执行权,而不影响其他用户的权限; 1. 用户登录程序,名称用以“班级+座号+(表示程序名的英文信息)”来命名,输入用户名和口令,判断正确后,按用户的权限,显示有权的菜单项,无权菜单项必须不可见或不可操作。 2. 用户授权程序,名称用以“班级+座号+(表示程序名的英文信息)”来命名。有授权权限的用户,可以指定某个用户获取某个程序执行权,或被禁止某个程序的执行权。 实验课题五、统计程序设计与报表打印 按物料统计进出仓流量,计算分析流动量最小的物料。按月份打印进出仓单表,打印进出仓单,按物料打印仓库账本。 1. 物料统计程序,统计各物料在指定时间内的进出仓数量总数,用图形显示,程序名以“班级+座号+(表示程序名的英文信息)”来命名。 2. 打印进出仓单程序,给定月份,将该月进出仓单全部按单号顺序打印出来,程序名以“班级+座号+(表示程序名的英文信息)”来命名。 3. 打印仓库账本程序,给定年份和物料,打印物料代码、名称、规格、计量单位、各日期的进仓、出仓和库存量;程序名以“班级+座号+(表示程序名的英文信息)”来命名。 设计要求: 1. 数据库定义的表或其它对象必须采用班级座号开头,窗体、程序名都必须用班级座号开头进行定义。 2. 必须简化输入操作,让操作尽可能用选择输入。如:性别、计量单位等一般用固定或可定义选择,出生日期用专用日期选择,身份证号暂不做要求。在输入所有的代码或编号时,应提供对应项目的名称提示。 3. 所有的程序合理安排窗体内的各个对象,所有窗体下要注明标题的名称和显示方式,可以看看微软的一些软件。 4. 所有的数据更改程序必须首先定位,确定记录点后,读出具体数据内容显示提供修改。修改完毕后,更新入对应的数据记录。所以,修改程序都包括查询过程或包含查询程序。 5. 所有删除程序也包含查询定位,但根据应用不同可以有不同的界面方式。
DELPHI专题文档-程序应用 更改Windows95的墙纸 类似于VB的doevents功能 DELPHI下的多线程程序设计 用Delphi 3.0编制MP3音乐点歌台 用Delphi开发windows95屏幕保护预览程序 判断一个程序是否dos版本 Delphi自定义消息应用一例 显示密码编辑框的密码 也谈Delphi日期输入 用修改文件时间的方法来加密文件 在DELPHI处理时间Delphi用拼音首字符序列来实现检索功能 用Delphi创建Internet快捷方式 用Delphi实现远程屏幕抓取 资源文件在DELPHI的使用 在DELPHI应用程序使用DLL 为DELPHI应用程序制作安装程序 用注册表对Delphi程序进行加密 在Delphi程序操作注册表 鼠标和键盘控制 如何为Delphi程序添加事件和事件处理器 在Delphi应用程序拖动控件 用DEPHI为应用软件建立注册机制 用Delphi创建临时文件 Delphi 5快速创建控制面板程序 Delphi经验技巧集锦 Microsoft Agent技术在Delphi的应用 怎样建立简单的任务栏应用程序 判断一个程序是否dos版本 利用Delphi 5调用Excel 97 利用Dll实现通用密码验证框 如何访问一个进程的内存空间 用Delphi 5.0编写OLE程序操纵Excel 用Delphi编写DLL实现动态改变分辨率 在delphi使用flash控件 在Delphi运用QuickReport实现多栏列印 控制INI文件几法 转让控制权 得到执行程序的目录 打开已注册文件 得到Windows用户名和序列号 关闭外部应用程序 查阅可视窗口标题 在Delphi编程创建一个启动闪现窗口 如何用Delphi编ScreenSaver Delphi里如何计算日期 delphi怎样调用外部EXE文件 Win95/98下监控运行的其他程序 控制面板应用大全 避免一个程序二次运行 转换WINDOWS壁纸 改计算机名 为应用程序添加口令 启动屏幕保护 控制热启动 辨别显示分辨率 获得WINDOWS的临时路径 状态条插入可视控件 统计英文字个数 获得Windows类型和版本 读INI文件 大小写金额转换 检测程序是否运行 用Delphi3编写"共享软件" 如何从任务栏上隐藏应用程序的按纽 如何在Delphi程序支持文件拖放 如何运行一个程序直到它结束 用De1phi编制汉字录入能力测试软件 一个实用的Delphi屏幕拷贝程序的设计 如何做一个SYSTRAY程序 查阅可视窗口标题 屏蔽系统功能键 状态条插入可视控件 如何隐藏和显示Windows的任务条 如何将你的程序放在Windows启动 获取当前程序的目录
DELPHI专题文档-程序应用 更改Windows95的墙纸 类似于VB的doevents功能 DELPHI下的多线程程序设计 用Delphi 3.0编制MP3音乐点歌台 用Delphi开发windows95屏幕保护预览程序 判断一个程序是否dos版本 Delphi自定义消息应用一例 显示密码编辑框的密码 也谈Delphi日期输入 用修改文件时间的方法来加密文件 在DELPHI处理时间Delphi用拼音首字符序列来实现检索功能 用Delphi创建Internet快捷方式 用Delphi实现远程屏幕抓取 资源文件在DELPHI的使用 在DELPHI应用程序使用DLL 为DELPHI应用程序制作安装程序 用注册表对Delphi程序进行加密 在Delphi程序操作注册表 鼠标和键盘控制 如何为Delphi程序添加事件和事件处理器 在Delphi应用程序拖动控件 用DEPHI为应用软件建立注册机制 用Delphi创建临时文件 Delphi 5快速创建控制面板程序 Delphi经验技巧集锦 Microsoft Agent技术在Delphi的应用 怎样建立简单的任务栏应用程序 判断一个程序是否dos版本 利用Delphi 5调用Excel 97 利用Dll实现通用密码验证框 如何访问一个进程的内存空间 用Delphi 5.0编写OLE程序操纵Excel 用Delphi编写DLL实现动态改变分辨率 在delphi使用flash控件 在Delphi运用QuickReport实现多栏列印 控制INI文件几法 转让控制权 得到执行程序的目录 打开已注册文件 得到Windows用户名和序列号 关闭外部应用程序 查阅可视窗口标题 在Delphi编程创建一个启动闪现窗口 如何用Delphi编ScreenSaver Delphi里如何计算日期 delphi怎样调用外部EXE文件 Win95/98下监控运行的其他程序 控制面板应用大全 避免一个程序二次运行 转换WINDOWS壁纸 改计算机名 为应用程序添加口令 启动屏幕保护 控制热启动 辨别显示分辨率 获得WINDOWS的临时路径 状态条插入可视控件 统计英文字个数 获得Windows类型和版本 读INI文件 大小写金额转换 检测程序是否运行 用Delphi3编写"共享软件" 如何从任务栏上隐藏应用程序的按纽 如何在Delphi程序支持文件拖放 如何运行一个程序直到它结束 用De1phi编制汉字录入能力测试软件 一个实用的Delphi屏幕拷贝程序的设计 如何做一个SYSTRAY程序 查阅可视窗口标题 屏蔽系统功能键 状态条插入可视控件 如何隐藏和显示Windows的任务条 如何将你的程序放在Windows启动 获取当前程序的目录
实验课题一、人员档案的管理、物料档案管理 设计实现对企业人员基本情况的档案的输入、删除与修改,企业人员基本情况主要包括:人员代码、姓名、性别、出生日期、身份证号、籍贯、家庭住址、联系电话、其它情况等。 1. 程序须包括主界面程序,程序名用“班级名+座号+main”,主界面可以通过菜单调用到其它所有子程序。 2. 人员档案的增加、修改、删除的程序,其人员档案表在数据库必须以“班级+座号+(表示人员的英文信息)”来命名,人员档案的信息管理程序也必须以“班级+座号+(表示程序名的英文信息)”来命名。其人员代码不能为空,性别必须用“男”、“女”选择方式,出生日期必须用日期控件来控制。修改、删除程序在执行修改删除操作前,都必须进行记录定位操作,所以必须有相应的查询程序,可以借用查询程序来完成记录定位。人员档案的增加、修改、删除程序也可以用三个程序名,分别编程。 3. 人员档案查询程序,程序名以“班级+座号+(表示程序名的英文信息)”来命名,可以在查询框输入人员姓名的任何一个单字,查询出含该字的所有人员。 物料档案包括物料代码、物料名称、规格型号、计量单位、库存数量、备注等字段。 1. 物料档案的增加、修改、删除程序,程序名以“班级+座号+(表示程序名的英文信息)”来命名,具体内容参考人员档案管理程序。物料表在数据库以“班级+座号+(表示程序名的英文信息)”来命名表,客户端输入时要求物料代码不为空,计量单位可以选择“件、套、公斤、吨、升、米、毫米、个”等,计量单位并可以输入其它单位名,库存数量默认为0。 2. 物料查询程序可以在通过输入框的文字进行模糊查询(物料代码、名称、规格是否含有输入框的文字),程序名用“班级+座号+(表示程序名的英文信息)”来命名。 实验课题二、简单物料进仓/出仓信息管理 企业物料进出仓的信息管理,物料进出仓的信息主要包括进出仓单号、进出仓日期、操作人员代码、备注、物料代码、进仓数量、出仓数量等 1. 企业仓库进出仓信息表以“班级+座号+(表示程序名的英文信息)”来命名,可以用一个表,也可以用二个表(一对多关系),具体表设计的思路须在报告描述。 2. 进仓程序与出仓程序可以合并,也可以分开做,名称以“班级+座号+(表示程序名的英文信息)”来命名。其操作人员必须用下拉框来选择;单号要自己编规则自动生成,单号产生规则在报告说明;进出仓日期日期控件;物料代码必须下拉框做选择;当物料出仓时必须判断出仓数量时候超过物料的库存数量,物料的库存数量在物料表可以获得该物料的库存数量。进行进仓或出仓操作时必须通过调用存储过程来实现,存储过程将操作结果返回调用者,显示成功或失败的信息。 3. 进仓、出仓的存储过程可以合并或分开做,存储过程名称以“班级+座号+(表示程序名的英文信息)”来命名,存储过程要判断物料是否存在,操作后物料库存数量是否不为负数;如果不满足条件显示,失败提示;如果满足条件,增加进出仓表记录一条,并根据进出仓物料的数量对物料表库存数量进行修改,提交数据库操作,否则回滚。 4. 进出仓单查询程序,以“班级+座号+(表示程序名的英文信息)”来命名,可以用进出仓日期起止条件,物料代码、操作人员、备注(用子串查询)来完成。 实验课题三、多物料进出仓信息管理 一般企业进行物料进出仓时,多在一个进出仓单号上同时对多种物料做同进或同出操作,通过程序实现多个物料在一个界面一个单号上同时实现进仓或出仓操作,如果不成功,必须全部回滚。 1. 多物料进仓出仓,可以在一个程序完成,也可以分开编程,程序名以“班级+座号+(表示程序名的英文信息)”来命名,同一单号进出仓单号、进出仓日期、操作人员必须完全相同,同一单号不能进仓与出仓同时存在,通过调用存储过程完成进出仓操作。 2. 多物料进出仓存储过程,过程名以“班级+座号+(表示程序名的英文信息)”来命名,多物料进出仓单增加到表,并修改多个物料的库存数量,失败就显示提示内容。 实验课题四、用户登录与权限设计 用户在这里就指操作人员,已经在人员档案进行管理,通过设计用户登录和用户权限的管理,实现用户按权限访问资源,管理员按要求授予用户权限,登录程序安全稳定,设计用户菜单及程序调用。人员表需要新增字段口令、用户权限。系统每个操作人员都可以作为用户,当一个用户权限修改时,不会影响其他用户;可以对每个用户单独授予某个程序的执行权,也可以收回其执行权,而不影响其他用户的权限; 1. 用户登录程序,名称用以“班级+座号+(表示程序名的英文信息)”来命名,输入用户名和口令,判断正确后,按用户的权限,显示有权的菜单项,无权菜单项必须不可见或不可操作。 2. 用户授权程序,名称用以“班级+座号+(表示程序名的英文信息)”来命名。有授权权限的用户,可以指定某个用户获取某个程序执行权,或被禁止某个程序的执行权。 实验课题五、统计程序设计与报表打印 按物料统计进出仓流量,计算分析流动量最小的物料。按月份打印进出仓单表,打印进出仓单,按物料打印仓库账本。 1. 物料统计程序,统计各物料在指定时间内的进出仓数量总数,用图形显示,程序名以“班级+座号+(表示程序名的英文信息)”来命名。 2. 打印进出仓单程序,给定月份,将该月进出仓单全部按单号顺序打印出来,程序名以“班级+座号+(表示程序名的英文信息)”来命名。 3. 打印仓库账本程序,给定年份和物料,打印物料代码、名称、规格、计量单位、各日期的进仓、出仓和库存量;程序名以“班级+座号+(表示程序名的英文信息)”来命名。 设计要求: 1. 数据库定义的表或其它对象必须采用班级座号开头,窗体、程序名都必须用班级座号开头进行定义。 2. 必须简化输入操作,让操作尽可能用选择输入。如:性别、计量单位等一般用固定或可定义选择,出生日期用专用日期选择,身份证号暂不做要求。在输入所有的代码或编号时,应提供对应项目的名称提示。 3. 所有的程序合理安排窗体内的各个对象,所有窗体下要注明标题的名称和显示方式,可以看看微软的一些软件。 4. 所有的数据更改程序必须首先定位,确定记录点后,读出具体数据内容显示提供修改。修改完毕后,更新入对应的数据记录。所以,修改程序都包括查询过程或包含查询程序。 5. 所有删除程序也包含查询定位,但根据应用不同可以有不同的界面方式。

1,183

社区成员

发帖
与我相关
我的任务
社区描述
Delphi Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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