hur.cn - 华软网

 热门搜索

高分求一算法:求一年中第m个星期n 所属月份

  作者:未知    来源:网络    更新时间:2018/5/16
可以表示成如下形式:In_month(n,m,year),其中n 星期n, m为第m个星期n,year为年份,返回值为所属月份。  举例:In_month(1,9,2005) 2005年第九个星期一,返回值应为2,在2005年的2 月份
------华软网友回答------
PB中有判断日期是星期几的函数吧,先取得计算年度的1月1日是星期几再算出目标日期是哪一天 再通过函数算出目标月份
------华软网友回复------
这个不难实现的, 如同楼上的说法,先计算出元月一日是星期几,再求第几个星期几距一月一日的天数,然后根据本年的每个月有多少天计算出所在的月份!
------华软网友回复------
楼主,你的函数已经调试通过:
鉴于year是关键字,我用的下边3个参数名称,顺序和意义同你的一样。

int In_month(int dow, int cnt, int y)

///////////////////////

date foy //first of year
date uwant // you want
int dow_foy // day of week of foy

foy=date(string(y)+"-01-01")
dow_foy=daynumber(foy) -1   // -1 is for chinese custom
if dow_foy=0 then dow_foy=7 // in western country, sunday =1, monday=2 ...
                            // now we convert it to monday=1, sunday=7

if dow_foy>dow then cnt+=1  // +1 for an easy use next 

uwant=relativedate(foy,7*(cnt -1)+dow -dow_foy) // day you want

return month(uwant)

------华软网友回复------
楼上的应该可以      
华软声明:本内容来自网络,如有侵犯您版权请来信指出,本站立即删除。