![]() |
#9 |
MCP
|
Случайно наткнулся - есть похожая Статья
X++: static date Week2Date(int yr, int week) { int weekJan1st; int dayJan1st; date tempDate; #TimeConstants ; weekJan1st = wkofyr(dateStartYr(str2Date(strFmt(%1-01-, yr), 321))); dayJan1st = dayofwk(dateStartYr(str2Date(strFmt(%1-01-, yr), 321))); tempDate = dateStartYr(str2Date(strFmt(%1-01-, yr), 321)); switch(firstWeekOfYear()) { case 0: // Starts on Jan 1 tempDate -= (dayOfWk(tempDate) 1); tempDate += (week 1 ) * 7; break; case 1: // First full week // // If 1st Jan is a monday wkofyr gives correct result // If 1st Jan is a tuesday-thursday wkofyr gives one too much, // as this 4/5/6 day week is given it’s own week number. // if (dayJan1st != 1) tempDate += (8 dayJan1st); tempDate += (week 1) * 7; break; case 2: // First 4-day week if (mthofyr(tempDate) == 1 && weekOfYear(tempDate) > 50) tempDate += week * 7; else tempDate += (week 1) * 7; tempDate -= (dayofwk(tempDate) 1); break; } return tempDate; }
__________________
AXIOMA Последний раз редактировалось kornix; 27.10.2014 в 20:27. |
|