沐浴阳光的SK猫

享受黑夜,期盼黎明

« 我就喜欢《交互设计之路》读后感 »

计算某天是当月第几周


在网上看到这样文章,是用VBS写的,觉得有些麻烦,于是想自己写一个,才发现VBS本来就有类似的函数,于是很容易得实现了

Function weekOfMonth(myDate)

   monthWeek = DatePart("ww",DateAdd("d",-day(myDate)+1,myDate)) ''取得该月1号是本年第几周

   dayWeek = DatePart("ww",myDate) ''取得该日期是本年第几周

   weekOfMonth = dayWeek - monthWeek + 1

End Function


返回是整数,可以这样调用:

MsgBox weekOfMonth("2006-8-20")




写完觉得太简单了,再用Flash写一个,在Flash里面找不到关于周计算的函数,只能自己写算法了

function weekOfMonth(yyyy:Number,mm:Number,dd:Number):Number{
var myDate = new Date (yyyy, mm-1, dd);
var diff = myDate.getDate() - 1;
myDate.setDate(1);
var dateWeek = 6 - myDate.getDay ();
if (diff > dateWeek){
diff -= dateWeek;
var dateMod = diff % 7;
if(dateMod > 0){
return (diff - dateMod)/7 + 2;
}else{
return diff/7 + 1;
}
}else{
return 1;
}
}


也是返回整型,调用方法

trace(weekOfMonth(2006,8,20));




函数也很简单,就不多说了。下面是Flash演示,这里下载源文件(133KB),Flash8








前面说到的文章在这里,有兴趣可以看看

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

最近发表

最新评论及回复

BBS | About | GuestBook | SiteMap | RSS | Login
Copyright 2005-2008 21ido.com. All Rights Reserved.
Powered by Z-Blog 1.8 Spirit Build 80722 | Skin by coolmud
粤ICP备05022506号