请高手帮我解释一下/demos/db/mastapp下的例子中getdateorder函数好吗?(50分)

  • 主题发起人 主题发起人 chen_ke
  • 开始时间 开始时间
C

chen_ke

Unregistered / Unconfirmed
GUEST, unregistred user!
调用该函数的参数shortdateformat是什么?tdateorder是?(我在
帮助中找不到)doMDY是?语句case chr(ord(dateformatand$df) of
...
...
...
是什么意思?请具体解释该函数。
 
TDateOrder = (doMDY, doDMY, doYMD);//定义的三种日期格式,
//即mdy,dmy,ymd
//y-year,m-month,d-day
// 返回日期的格式函数
function GetDateOrder(const DateFormat: string): TDateOrder;
var
I: Integer;
begin
Result := doMDY; //缺省为mdy 即月日年
I := 1;
while I <= Length(DateFormat) do
begin
case Chr(Ord(DateFormat) and $DF) of //转换为大写
'Y': Result := doYMD; //第一个字母为Y
'M': Result := doMDY; //第一个字母为M
'D': Result := doDMY; //第一个字母为D
else
Inc(I);
Continue;
end;
Exit;
end;
Result := doMDY;
end;
还有什么不懂的?
快点, 我要~~~~
 
$DF是什么来的?
 
为什么要用while循环呢?
 
大写的A的ord是65, 即$41, 01000001
小 a 97, 即$61, 01100001
其它字母是顺序排列的。
你想想$61如何转换为$41,
当然是用11011111(即$df)去and一把了;-)
 
while循环我知道了,刚刚误解了,请继续。
 
还有参数DateFormat,该例中调用它时用getdateorder(shortdateformat),何解?
 
注意看例子中的说明:
ShortDateFormat - The format string used to convert a date value to a
short string suitable for editing. For a complete description of date and
time format strings, refer to the documentation for the FormatDate
function. The short date format should only use the date separator
character and the m, mm, d, dd, yy, and yyyy format specifiers. The
initial value is fetched from LOCALE_SSHORTDATE.
 
谢谢amo,对于该例我还有些其他疑问,我会继续提出问题,请关注。
 
接受答案了.
 
后退
顶部