이번주가 2008년의 마지막주일까요?

주간보고서에 몇번째 주인지를 쓰는 곳이 있는데 이번주가 2008년의 마지막주인지 2009년의 첫번째 주인지 모르겠더군요. 그래서 좀 찾아 봤습니다.

PHP 에서 몇번째 주인지 알수 있는 방법은 아래와 같습니다.

echo(" date('W') ");

결과는 1이 나오는군요 즉, 2009년의 첫번째 주라고 합니다.

Curl 4.0에서는 아래와 같이 사용해야 하더군요.

{let now:DateTime = {DateTime}}
{let
( wnoy1:int, wnoy2:int ) = {now.info.week-of-year}
}
It is the {ordinal wnoy2} week of the year({value wnoy1}).

좀 복잡하지만 결과적으로 “It is the 53rd week of the year(2008).”라고 나옵니다. 헉, 2008년의 마지막주라고 나오네요. PHP와 다른 결과를 보여주고 있습니다.

이상하죠? PHP나 Curl 모두 ISO 8601에 의한 값을 리턴한다고 되어 있거든요. 그래서 날짜와 관련된 표준인 ISO 8601에 정의된 내용을 wikipedia.org에서 찾아 봤습니다. 첫번째 주를 구분하는 방법이 아래와 같이 적혀 있더군요.

There are mutually equivalent descriptions of week 01:

  • the week with the year’s first Thursday in it (the formal ISO definition),
    새해의 시작이 목요일인 주
  • the week with 4 January in it,
    1월 4일이 있는 주
  • the first week with the majority (four or more) of its days in the starting year, and
    새해의 날짜가 4일 이상 포함하고 있는 주
  • the week starting with the Monday in the period 29 December4 January.
    월요일부터 시작하는 주의  기간이 12월 29일부터 1월 4일까지인 주

If 1 January is on a Monday, Tuesday, Wednesday or Thursday, it is in week 01. If 1 January is on a Friday, Saturday or Sunday, it is in week 52 or 53 of the previous year. 28 December is always in the last week of its year.
만약 1월 1일이 월요일, 화요일, 수요일, 또는 목요일에 있으면 새해의 첫번째 주입니다. 만약 1월 1일이 금요일, 토요일, 또는 일요일에 있으면 이전년도의 52번째 또는 53번째 주입니다. 12월 28일은 항상 마지막 주에 있습니다.

결국 이번주(2008년 12월 29일 ~ 2009년 1월 4일)는 2009년의 첫번째 주입니다.

그나저나 Curl에서는 왜 2008년의 마지막주라고 결과를 보여줬는지 모르겠네요. Curl.com 사이트에 글이나 올려 봐야 겠군요.

Advertisements

Published by: benant

WEB PROGRAMMER. PHP, ASP, XML, Javascript, VBScript, PL/SQL, MySQL, Oracle. scrollads.co.kr 새로운 모바일 광고 서비스. trenue.com 시스탬 트래이딩 서비스. blogman.co.kr 블로그 운영 관리 서비스. creget.co.kr 해외 상품 구매대행. 핫딜 정보 제공 서비스. fgshop.co.kr - 독립형 쇼핑몰 솔루션.

Categories 일상의 기록, Web태그댓글 남기기

답글 남기기

아래 항목을 채우거나 오른쪽 아이콘 중 하나를 클릭하여 로그 인 하세요:

WordPress.com 로고

WordPress.com의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Twitter 사진

Twitter의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Facebook 사진

Facebook의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Google+ photo

Google+의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

%s에 연결하는 중