var
i : integer;
startday : TDate;
str : string;
begin
startday := Now - Dayofweek(Now) + 1;
for i := 0 to 6 do
grdWeek.cells[i+2,1] := formatdatetime('dd', startday + i);
end;
이런식으로 해보니 TAdvStringGrid에 한주 가 담아지는데요..
헤더 컬럼에는 이번년도 이번월..이번주의....(한달에 5주까지 있겠죠?)
일 월 화 수 목 금 토 로 잡고
30 1 2 3 4 5 6 이..들어갑니다..
이것을 년도 월 주 단위로 끊어서...
원하는 년도의 월에 주를.....
그리드에 한주 씩 표시 하려고요~
아래 글에 대한 부족한 점이 만회가 되려나요..^^;;;;;;;;
그림 첨부할깨요~
^^*
1. 년도와 월 가지고 그달의 1일을 구하세요. (EncodeDate(2008, 12, 1);)
2. 구해진 날짜의 요일을 알아내세요. (DayOfWeek), 일요일이 1이고, 월요일이 2, ... 토요일이 7입니다.
월요일이니까 2가 나오겠죠.
3. 주의 시작하는 날짜 (2008년11월30일)을 구하기 해서 1번에서 구해진 날짜에 2번에서 구해진 결과를 빼세요.
(2번에서 구해진 인덱스는 1부터 시작하니까 1을 더해줘야죠)
12월1일 - 월요일(2) + 1 ==> 11월30일(일요일)
4. 3번에서 2008년 12월의 첫번째주 시작하는 날짜를 알았습니다.
5. 이제 원하는 주의 시작하는 날짜를 알고 싶으면 그만큼 7일을 더해주면 됩니다.
6. 2008년 12월 4번째주
= 11월30일 + (4-1) * 7일