Flex Date 객체에서 주 (1 - 52)의 주를 얻는 메소드를 찾을 수 없습니다.플렉스, 날짜를위한 주를 얻는 방법?
가장 적합한 방법은 무엇입니까? Java의 JodaTime과 같은 날짜 연산에 flex를위한 유용한 라이브러리가 있습니까?
Flex Date 객체에서 주 (1 - 52)의 주를 얻는 메소드를 찾을 수 없습니다.플렉스, 날짜를위한 주를 얻는 방법?
가장 적합한 방법은 무엇입니까? Java의 JodaTime과 같은 날짜 연산에 flex를위한 유용한 라이브러리가 있습니까?
도서관을 모르지만이 기능으로 주 색인 (제로 기준)을 얻을 수 있습니다.
function getWeek(date:Date):Number
{
var days:Array = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
var year:Number = date.fullYearUTC;
var isLeap:Boolean = (year % 4 == 0) && (year % 100 != 0)
|| (year % 100 == 0) && (year % 400 == 0);
if(isLeap)
days[1]++;
var d = 0;
//month is conveniently 0 indexed.
for(var i = 0; i < date.month; i++)
d += days[i];
d += date.dateUTC;
var temp:Date = new Date(year, 0, 1);
var jan1:Number = temp.dayUTC;
/**
* If Jan 1st is a Friday (as in 2010), does Mon, 4th Jan
* fall in the first week or the second one?
*
* Comment the next line to make it in first week
* This will effectively make the week start on Friday
* or whatever day Jan 1st of that year is.
**/
d += jan1;
return int(d/7);
}
위의 해결 방법에 오류가 있음을 지적하고 싶습니다.
for(var i = 0; i < date.month; i++)
이 제대로 작동하기 위해
for(var i = 0; i < date.monthUTC; i++)
해야한다.
그럼에도 불구하고 감사 솔루션, 그것은 나에게 많은 : 가 D가 7로 나눈 전에, 그것은 그렇지 않으면 1 씩 감소한다, 토요일 다음 주에 갈 것을 도왔다.
예를 들어 2011 년 1 월 1 일 토요일은 토요일입니다. 그것은 0 주해야하고,이 주 2011년 1월 8일이어야 1.
D가 감소되지 않으면, 다음 1 + 6 = 7분의 7 = 1, 8 + 6 = 7분의 14 = 2. 그래서 이것들은 정확하지 않습니다.
Amarghosh의 기능을 사용하려고했지만 UTC 값에 문제가있었습니다. 그리고 일년 중 처음으로.
그러므로 나는 Amarghosh의 하나를 기반으로 내가 사용하는 기능, 와 마지막 주 계산 여기
이다 (일요일)에 따라 jan1의 설정을 수정 :
public static function getWeek(date:Date):String
{
var days:Array = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
var year:Number = date.fullYear;
var isLeap:Boolean = (year % 4 == 0) && (year % 100 != 0)
|| (year % 100 == 0) && (year % 400 == 0);
if(isLeap)
days[1]++;
var d:Number = 0;
for(var i:int = 0; i < (date.month); i++){
d += days[i];
}
d += date.date;
var temp:Date = new Date(year, 0, 1);
var jan1:Number = temp.day;
if(jan1 == 0) // sunday
jan1 = 7;
d += jan1 - 1;
var week:int = int((d-1)/7);
if(week == 0) // les premiers jours de l'année
week = 52;
return (week < 10 ? "0" : "") + week;
}
감사하지만이없는 것입니다 내말은. 나는 일주일 동안 1 년에서 52 주까지 검색 할 수 있습니다. 예를 들어 2010 년 3 월 4 일이 9 번째 주입니다. – javanes
정확히이 함수가 당신을 위해 무엇을 할 것인가?이 함수에'new Date (2010, 2, 4); '를 전달하고 그것이 무엇을 반환하는지 봅니다. – Amarghosh
@javanes 죄송합니다. 기능을 실수로 고치 셨습니다. 지금 시도해보십시오. – Amarghosh