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


LIST ALL
Posted by 권선중2005-07-11 12:06:22, Hit : 5159
[끼적강좌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
119
   창조에서 반올림하기 [1]
지상현 2013/01/05  5014
118
   컴퓨터에서 소수점을 표기하는 방식에 대해 [1]
지상현 2012/01/03  7527
117
   창조의 변수형에 대한 고찰 [1]
지상현 2012/01/03  5787
116
   창조 초보자들을 위한 아주 기본적인 사용법
김대명 2011/03/09  6226
115
   객체 배열을 정복해보자! [1]
지상현 2010/06/28  6997
114
   [0강] 그림판에 그림을 그려보자!
박종훈 2009/10/24  6632
113
     [1강] 그림과 관련된 객체
박종훈 2009/10/24  5764
112
       [2강] ㅎ그림판에 그림을 그리기 위해 준비단계
박종훈 2009/10/24  5976
111
   [수정!] 직선, 사각형, 타원, 원, 호, 현을 그려보자! [4]
박종훈 2009/05/10  6666
110
     [0강] ㅎ배경의 좌표 체계에 대해서 알아보자! [2]
박종훈 2009/10/24  7025
109
       [1강] 직선을 그려보자!
박종훈 2009/10/24  7728
108
         [2강] 사각형을 그려보자!
박종훈 2009/10/24  5626
107
           [3강] 타원을 그려보자! (원 포함)
박종훈 2009/10/24  8378
106
             [4강] 현, 호를 그려보자! [4]
박종훈 2009/10/24  6263
105
     호현계산기2 Rev2 [6]
박종훈 2009/10/23  5876
104
   기타 자료실에 있는 다람쥐어 (파악해 보자_) [2]
김제형 2009/05/03  5779
103
   맞짱! 포인터(Pointer) - 3부 [창조에서 포인터를 사용해보자!] ... 제작중
박종훈 2009/02/26  5940
102
   맞짱! 포인터(Pointer) - 2부 [C언어 포인터 존재를 확인하자!]
박종훈 2009/02/26  7298
101
   맞짱! 포인터(Pointer) - 1부 [C언어 들춰보자!] [7]
박종훈 2009/02/26  6275
100
   자연수들의 합 쉽게 구하는 방법(수학과 프로그래밍) [7]
박종훈 2009/02/15  6130
99
   창조입문 : 메모장 만들기 [2]
신용주 2008/12/20  7555
98
   창조와 ActiveX (2)
지상현 2007/08/11  10802
97
   창조와 ActiveX (1)
지상현 2007/08/07  8286
96
   골칫거리 ㅎ사용자함수 DLL하나로 해결하기! [7]
박종훈 2007/06/23  7115
95
   환경파일로 파워유저되어보자![개정판] [예제/사용!] 2 [6]
박종훈 2007/01/02  7773
LIST ALL   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이희철
로그인