吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1280|回复: 5
收起左侧

[求助] 为啥得到的日期与实际不符?

[复制链接]
冥界3大法王 发表于 2021-9-19 10:22
[Delphi] 纯文本查看 复制代码

unit Unit1;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants,
  System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs,
  Vcl.StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

uses
  IniFiles;

procedure TForm1.Button1Click(Sender: TObject);
var
  inifile: TIniFile;        //定义ini文件
  Filename: string;         //其文件名类型

  Keyword4: TDateTime;


begin
  Filename := GetCurrentDir + '\配置.ini';
  inifile := TIniFile.Create(PChar(Filename));
  inifile.WriteDate('小节名1', '关键字4', 2021-8-8); 
  Keyword4 := inifile.ReadDate('小节名1', '关键字4', Keyword4); 
  ShowMessage(DateToStr(Keyword4));
end;

end.

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

Jack2002 发表于 2021-9-19 11:28
本帖最后由 Jack2002 于 2021-9-19 11:34 编辑

代码简单,没写注释,字符串转日期函数可使用StrToDate(String)。
[Delphi] 纯文本查看 复制代码
var
  inifile: TIniFile;        //定义ini文件
  Filename: string;         //其文件名类型
  Keyword4: TDateTime;
begin
  Filename := GetCurrentDir + '\配置.ini';
  inifile := TIniFile.Create(PChar(Filename));

  inifile.WriteDate('小节名1', '关键字4', Date());
  inifile.WriteDate('小节名1', '关键字5', EncodeDate(2021, 08, 08));

  Keyword4 := inifile.ReadDate('小节名1', '关键字4', Keyword4);
  ShowMessage(DateToStr(Keyword4));

  Keyword4 := inifile.ReadDate('小节名1', '关键字5', Keyword4);
  ShowMessage(DateToStr(Keyword4));
end;

免费评分

参与人数 1吾爱币 +2 热心值 +1 收起 理由
冥界3大法王 + 2 + 1 谢谢@Thanks!

查看全部评分

lies2014 发表于 2021-9-19 14:28
本帖最后由 lies2014 于 2021-9-19 14:33 编辑

只改一句就可以了,其实就是数据类型转换的问题:
[Delphi] 纯文本查看 复制代码
inifile.WriteDate('小节名1', '关键字4', StrToDate('2021-8-8'));

免费评分

参与人数 1吾爱币 +2 热心值 +1 收起 理由
冥界3大法王 + 2 + 1 谢谢@Thanks!

查看全部评分

头像被屏蔽
yulinsoft 发表于 2021-9-19 16:59
 楼主| 冥界3大法王 发表于 2021-9-19 17:32
yulinsoft 发表于 2021-9-19 16:59
为啥不用WriteString?通用性更好,ini本身就是文本文件,日期类型本质是浮点数,你的写法我也是第一次见。

开始最早吧,我就觉得会写文本型好像就够了,一看书原来有6种类型
于是我就蛋痛的试了试,书上的写法,不过觉得搞复杂了。
Jack2002 发表于 2021-9-19 19:42
冥界3大法王 发表于 2021-9-19 17:32
开始最早吧,我就觉得会写文本型好像就够了,一看书原来有6种类型
于是我就蛋痛的试了试,书上的写法, ...

不复杂,这么搞肯定是有好处的,写入时如果确定格式不会出错就用WriteString,省去了转换操作,读入时可以ReadDate,也是免去了转换的操作,封装的目的就是为了使用更方便,并不是没用的!
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 22:55

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表