回复人: fibbery(飞) ( ) 信誉:116 2005-2-25 11:42:42 得分: 20
这个很容易,如果忽略day,那么用mon函数和year函数分别得到月和年,然后月份相减,不够减向年份借一,然后,年份相减,结果乘以12与月份差相加。
如果考虑day,比如2001/1/1~2001/3/31,可以认为是3个月,你就酌情在day上做个处理就完了。
回复人: PbAsp(AspNet) ( ) 信誉:100 2005-2-25 11:58:59 得分: 20
没错,
Date fdt_date1,fdt_date2
int li_Cnt
li_Cnt = (year(fdt_date1) - year(fdt_date2))*12 + month(fdt_date1) - month(fdt_date2)
回复人: hornbilltofy() ( ) 信誉:100 2005-2-25 12:37:02 得分: 20
1、pbscript代码中写法
Date fdt_date1,fdt_date2
int li_Cnt
li_Cnt = (year(fdt_date1) - year(fdt_date2))*12 + month(fdt_date1) - month(fdt_date2)
2、使用数据库处理函数,假如你的数据库是sql serve 或sybase:
select datediff(month,:fdt_date1,:fdt_date2) into :li_cnt;
回复人: j9dai(Code Factory) ( ) 信誉:93 2005-2-25 15:41:51 得分: 20
2001/10/01到2002/11/01日为13个月
2001/10/01到2002/10/10日为12个月
那么2001/10/10到2002/11/10日为12还是13个月?好像日也要判断吧!//if result=13 then 楼上的法子 else ↓
Date fdt_date1,fdt_date2
int li_Cnt,li_DayFlag
if day(fdt_date1) - day(fdt_date2)<0 then li_dayflag = - 1
li_Cnt = (year(fdt_date1) - year(fdt_date2))*12 + month(fdt_date1) - month(fdt_date2) + li_dayflag
回复人: dnvihpl(逍遥) ( ) 信誉:98 2005-2-25 16:17:15 得分: 0
能不能先得到相距的天数,用这个数/30得到不就是月数吗?当然这可能得不到整数,四舍五入就可以啦