时间方面的计算(100分)

  • 主题发起人 主题发起人 白色的鱼
  • 开始时间 开始时间

白色的鱼

Unregistered / Unconfirmed
GUEST, unregistred user!
刚开始学习DELPHI,所以很多地方不懂,希望各位大侠能帮我。
1. 怎样才能知道输入的日期是否合法。比如说闰年只有28日,而输入了29日。
2. 怎么才能计算两个日期之间相隔的天数、年数、月数等(有无此函数)。比如说1980
年10月8日至2001年8月12日。
 
1:用datetimepicker就可以了
2.strtodate('1980/10/12')-strtodate('2000/08/12')
 
1:
或 例:
try
strtodate('2000/02/30');
except
showmessage('date is error');
end;
 
2、有两个函数,recodedate和decodedate,可以将三个整数值自动转换成日期型,将日期型
转换成三个整数,分别为年、月、日。
 
1、用Win32下的DateTimePicker控件来输入日期或时间,你连出错的机会都没有
2、TDatetime型的变量,其值是个实数,整数部分表示日期,小数部分表示时间,
其整数代表的就是天数。日期型变量是可以直接相减的
 
class Mydate{
public Mydate(){}
public static boolean isLegalDate(String strDate)
{
int intY,intM,intD;
int[]standardDays={31,28,31,30,31,30,31,31,30,31,30,31};
int[]leapyearDays={31,29,31,30,31,30,31,31,30,31,30,31};
if (strDate==null||strDate.trim().equals("")||strDate.trim().length()!=10)return false;
strDate=strDate.trim();
try{
intY=Integer.parseInt(strDate.substring(0,4));
intM=Integer.parseInt(strDate.substring(5,7));
intD=Integer.parseInt(strDate.substring(8));
}catch(Exception e){return false;}
if (intM>12||intM<1||intY<1||intD<1)return false;
if ((intY%4==0&amp;&amp;intY%100!=0)||intY%400==0)return (intD<=leapyearDays[intM-1]);
return (intD<=standardDays[intM-1]);
}
}
嘻~~~~~~~~~~~~~~~~~~~~~~~~
 
哥,这是java版块~><~
 
decodedate即可.
 
妹妹,这是java版块。
JUST
TRY
TO DATE
EXCEPT
SHOWERRORMESSAGE
要不用MASKEDIT就解决了。
转化成DATE型,直接减就行了◎!
给我加分!
 

Similar threads

D
回复
0
查看
911
DelphiTeacher的专栏
D
D
回复
0
查看
868
DelphiTeacher的专栏
D
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
后退
顶部