창조유저그룹-커즈닷컴
Window close
ID :     PASS :   
   
  처음으로
  창조
  창조 소개
창조 다운로드
CUGz.com 소개
온라인 도움말
  커뮤니티
  가입인사
자유게시판
Q/A게시판
TIP/TECH
열린강좌
자주하는질문
아이디어게시판
  자료실
  소스자료실
프로그램자료실
기타자료실
명예의 전당
이미지 자료실
  지원/기타
  표준용어재정
구글 웹서치  
관리자 전용


LIST ALL
Posted by 권선중2005-07-11 12:06:22, Hit : 5146
[끼적강좌7] 달력 구현강좌 [1강][초급]
Homepage : http://ever2ksj.woobi.co.kr/
File #1 : 달력.zip (5.4 KB)   Download : 293
Post URL : http://cugz.sjworks.net/bbs/zboard.php?id=open_lec&no=72

안녕하세요..
질답게시판에 달력질문이 올라와서..이렇게 강좌를 올려봅니다.. 
이번강좌는 초급,고급 2가지로 나누어서 올리겠습니다..
그리고 시간나면 응용강좌를 추가로 올리겠습니다..

이번에는 달력을 구현해볼까요...
그럼 달력프로그램은 어디 어디 쓰이는지 부터 생각해봅시다..
일기장,스케줄이 가장 대표적이네요..(솔직히 다른곳에 어디쓰이는지 생각이..ㅠㅠ ㅈㅅ)

이제 슬슬 달력을 만들어볼까요..
달력의 구조를 생각해봅시다..
달력의 크기는 7*7입니다..
즉 7칸 7줄입니다..간혹 7칸 6줄로 착각하시는 분있는데..
달력을 잘 살펴보면 보톤 7칸 6출이지만 1일의 위치에 때라 줄수가 달라집니다..

그럼 필요 객체를 설치해봅시다..[초급 설치]
< 다음 형태로 설치하세요 >
 


버튼0,  버튼1,   버튼2
에디트0,이름표0, 에디트1,이름표1
문자표0 // 문자표 칸수7, 줄수 7로 설치,칸폭 20 , 칸높이 20,고정종칸수0,고정횡칸수1
사용자함수0

이름표0.제목을 "년"으로하고 이름표1.제목은 "월"로 수정하세요..
버튼0.제목은 "<<" 1의제목은 "[]" 2의 제목은 ">>"로 수정

문자표의 칸이 모두 잘보이도록 크기를 조절해서 설치하세요..
자 설치가 완료 되었나요..
그럼 명령을 해볼까요...

-------------------------//사용자함수0.요일표시//------------------------
함수:요일표시                               //<--- 함수 선언부
-------------------------------------------------------------------------

문자표0.칸내용써(0, 0, "일");    //<---- 첫줄 첫칸에 "일"이라는 문짜를 씁니다..
문자표0.칸내용써(1, 0, "월");    // <---- 앞숫자는 칸, 뒷숫자는 줄위치를 말합니다..
문자표0.칸내용써(2, 0, "화");
문자표0.칸내용써(3, 0, "수");
문자표0.칸내용써(4, 0, "목");
문자표0.칸내용써(5, 0, "금");
문자표0.칸내용써(6, 0, "토");


-------------------------------------------------------------------------


자그럼 요일을 표시했으니 날짜를 표시해볼까요..
이번 함수는 조금 복잡하고 어렵습니다..

함수:달력표시(실수:년,월,일);            //<---- 함수 선언부
---------------------------------------------------------------------------
실수: 시각수,위치수,수,수1,칸수,크기,일수;    //<- 함수에서 사용될 실수지정
에디트0.문자:=수를문(년);                    // <- 입력받은 년도를 표시
에디트1.문자:=수를문(월);                    // <- 입력받은 달을 표시
  시각수 := 날짜요일( 날짜합쳐(년, 월, 1));    //<-- 입력된 달의 1일의 요일을 알아봅니다
  만일(시각수 = 1) 위치수 := 0;
  아니면 만일(시각수 = 2) 위치수 :=1;
  아니면 만일(시각수 = 3) 위치수 :=2;
  아니면 만일(시각수 = 4) 위치수 :=3;
  아니면 만일(시각수 = 5) 위치수 :=4;
  아니면 만일(시각수 = 6) 위치수 :=5;
  아니면 위치수 := 6;



크기 := 달크기(년,월);     // <---달크기를 알아서 그만큼만 반복함
수1:=1;
반복{
   반복{
     문자표0.칸내용써(수,수1,"");
     수:=수+1;
   }까지(수>6);
수1:=수1+1; 수:=0;
}까지(수1>6);           //<=--- 위 반복문은 칸네의 모든 글자를 지워준다

수1:=1;
수:=위치수;            //<--달력의 첫줄의 시작위치를 지정함(즉 그달의 1일의 요일위치)
일수:=1;                 // <-- 달력 표시를 1부터 하도록 지정(하지 않으면 0부터 시작함)
반복{
   반복{
 만일(일수>크기){ 나가 ;}    
 문자표0.칸내용써(수,수1,수를문(일수));
 수:=수+1; 일수:=일수+1;  
 }까지(수>6);
수1:=수1+1; 수:=0;
}까지(수1>6);           //<=--- 위 반복문은 칸네의 날짜를 표기하는것이다
-----------------------------------------------------------------------------
이렇게 해서 달력을 표시를 하도록 했습니다..
조금 복잡하죠..하지만 몇번이고 보시면 이해를 하실수있을듯...(ㅈㅅ 제설명의 한계입니다..)

---------------------------[ 창0.보여질때 ]-----------------------------------

실수:년,월,일;
년:= 날짜년풀어(현재시간);
월:= 날짜월풀어(현재시간);
일:= 날짜년풀어(현재시간);                <---위 부분은 현재 시간에서 년,월,일을 받는 부분



창0.사용자함수0.요일표시;                  <---- 문자표에 요일을 표시한다
창0.사용자함수0.달력표시(년,월,일);    <--- 위에서 만든 사용자함수를 실행
---------------------------------------------------------------------------

자 우선 실행후 달력표기가 정확히 나오나 봅시다..
맞지 않타면 위 사용자 부분을 다시 확인해보자..분명이 빠진 부분이 있을것입니다.

그럼 이제 이달 말고 다른달을 볼수있도록 해봅시다..

---------------------------[ 버튼0.클릭했을때 ]-------------------------------
실수:년,월,일;
월:=문을수(에디트1.문자,날짜월풀어(현재시간))-1;    //<--- 표시월에서 1을 빼준다
년:=문을수(에디트0.문자,날짜년풀어(현재시간));
일:=날짜일풀어(현재시간));                         
만일(월< 1){월:=12; 년:=년-1;}     //<- 1월보다 작은 0월이면 12월로 해주고 1년을 뺀다
사용자함수0.달력표시(년,월,일);

------------------------------------------------------------------------------
자 그럼 다음달로 넘기는 명령을 볼까요...
위 명령과 비슷하지만 뭐가 다른지 찾아보세요..

---------------------------[ 버튼2.클릭했을때 ]-------------------------------
실수:년,월,일;
월:=문을수(에디트1.문자,날짜월풀어(현재시간))+1;    //<--- 표시월에서 1을 더한다
년:=문을수(에디트0.문자,날짜년풀어(현재시간));
일:=날짜일풀어(현재시간));                         
만일(월 > 12){월:=1; 년:=년+1;}     //<- 12월보다 큰 13월이면 1월로 해주고 1년을 더한다
사용자함수0.달력표시(년,월,일);

------------------------------------------------------------------------------

아주 쉽죠..

그럼 이제 현제 달도 돌리는 것을 해볼까요...
이것은 창 보여질때 명령을 고대로 쓰시면 됩니다..

------------------------[ 버튼1.클릭했을때 ]---------------------------------
실수:년,월,일;
년:= 날짜년풀어(현재시간);
월:= 날짜월풀어(현재시간);
일:= 날짜년풀어(현재시간);                <---위 부분은 현재 시간에서 년,월,일을 받는 부분




창0.사용자함수0.달력표시(년,월,일);    <--- 위에서 만든 사용자함수를 실행

-------------------------------------------------------------------------------

자 이렇게 해서 달력만들기가 끝났습니다..
솔직해 제 설명이 엉성하고 빠진 부분이 많치만 봐주셔서 감사합니다..
다음 2강에서는 배경에 그림을 넣는 방법과 좀더 재미난 방법등을 응용해보겠습니다..
그럼...
[소스 자료료 첨부합니다..


LIST ALL               GO TO THE TOP


N
   Subject
Posted by
Date
H
69
   리소스 해커를 이용하여 DLL 파일안의 HTML 문서 넣기! [4]
qkrwhdgns 2005/07/20  5663
68
   [끼적강좌 8]RPG게임을 만들어보자 [1강] [3]
권선중 2005/07/16  6065
67
     [re] [끼적강좌 8]RPG게임을 만들어보자 [2강] [1]
권선중 2005/07/17  5694

   [끼적강좌7] 달력 구현강좌 [1강][초급]
권선중 2005/07/11  5146
65
     [끼적강좌7] 달력 구현강좌 [2강][고급]
권선중 2005/07/15  4850
64
       [끼적강좌7] 달력 구현강좌 [3강][응용]
권선중 2005/07/16  4633
63
   [끼적강좌 6] 선중이 계발한 암호화구현 [7]
권선중 2005/06/29  4860
62
   [끼적 강좌] 기본문법을 알아야 한다...! [10]
권선중 2005/06/27  4922
61
   [끼적강좌 5] 로그인 구현강좌 [1강][초급] [6]
권선중 2005/06/24  5447
60
     [끼적강좌 5] 로그인 구현강좌 [2강][중급] [2]
권선중 2005/06/25  5568
59
       [끼적강좌 5] 로그인 구현강좌 [3강][고급] [3]
권선중 2005/06/26  5352
58
         [re] [끼적강좌 5] 로그인 구현강좌 [4강][다계정 구현] [5]
권선중 2005/06/27  5004
57
   마우스 오른쪽 눌렀을때의 메뉴 뜨게하기(초보용)
이시영 2005/02/02  5144
56
   [쉬운강좌1]환경파일 다루기 [3]
정성우 2005/01/11  5461
55
   영문 윈도우에서의 창조로 만든 프로그램.. [16]
손상진 2005/01/02  5942
54
   [ps.구루 강좌 #12♭]포인터를 왜 씁니까? [2]
ps.이진백 2004/12/31  6308
53
     [re] [ps.구루 강좌 #12♭]포인터를 왜 씁니까? [1]
지상현 2005/01/01  5623
52
   창조의 한계를 뛰어 넘어서 #1: '문자' 포인터 써먹기 [4]
지상현 2004/11/23  6931
51
   [ps.구루 강좌#11] 서비스팩2에서 프로그램 추가/제거 설정
ps.이진백 2004/10/26  5464
50
   대박로또에 적용된 자동업데이트 알고리즘.. [7]
최재일 2004/09/13  7936
49
   [삐까뻔쩍강좌] 오랜만에 글쓰네.. [10]
박재성[날개달기] 2004/09/07  4983
48
   [보충강좌#10-1] *.Res를 위한 *.Rc [1]
ps.이진백 2004/08/12  6154
47
   [강좌#10] DLL에 HTML 쑤셔넣기 [6]
ps.이진백 2004/08/06  6211
46
   방금생각한 암호화 알고리즘 - -;; [2]
박재성[날개달기] 2004/07/29  5667
45
   [끼적강좌 4] 창조 구현 DB강좌 [1강] [5]
권선중 2004/07/25  5825
LIST ALL   Prev [1][2] 3 [4][5] Next
Copyright 1999-2024 Zeroboard / skin by reedyfox in miniwini style
로그인
지우개 Expert 3.0
제작자 : 천호성 님 [LINK]
로그인
대박로또2005
제작자 : 최재일 님 [LINK]
로그인
1박종훈15292 점
2지상현8809 점
3손상진7388 점
4권선중6060 점
5이진백5174 점
로그인
가입일닉네임
05/31김동률
03/31홍형기
09/01o00pp99oo
12/27이재민
11/20이희철
로그인