간단 달력만들기 > 기술자료 | 해피정닷컴

간단 달력만들기 > 기술자료

본문 바로가기

사이트 내 전체검색

간단 달력만들기 > 기술자료

ClassicASP 간단 달력만들기

페이지 정보


본문

----------------------------------------------------------------
원본소스 : http://k.daum.net/qna/view.html?qid=01KwD
Devpia의 김종민씨가 만드신 달력입니다.
----------------------------------------------------------------
먼저 기억해 둘 함수가 있습니다.

Date():
오 늘의 날짜를 반환합니다.
예: Response.Write Date()

Year (인자) :
인자로 주어진 날짜에서 연도만 쏙 빼서 반납합니다.
예: Response.Write Year(Date())

Month (인자) :
인자로 주어진 날짜에서 달만 쏙 빼서 반납합니다.
예: Response.Write Month(Date())


CDate (인자) :
인자를 날짜 형으로 바꾸어 주는 함수임다. 당근 인자는 날짜로 변환될 수 있는 스트링 되겠습니다.
참고: 별것 아닌 것 같지만 날짜끼리 연산을 위해서는 반드시 필요합니다.
예: Response.Write CDate("2000-10-17")

DateADD (인자1, 인자2, 인자3) :
기 준일(인자3)에서 빼거나 더한 날짜를 반환합니다.
인자1 에는 더할 날수가 년("y")인지 달("m")인지 날("d")인지를 구분합니다.
인자2 에는 더할 값을 넣으면 됨다. 물론 숫자임다. 음수도 가능합니다.
인자3 에는 기준일을 적으시면 됩니다.
예: Response.Write DateAdd("m", 3, Date)

DateDiff (인자1, 인자2, 인자3) :
기준일(인자3)에서 주어진 날(인자2) 까지의 차이를 인자1의 구분으로 반환합니다.
인자1 에는 차일를 계산할 것이 년("y")인지 달("m")인지 날("d")인지를 구분합니다.
인자2 에는 기준일과 차이를 구할 날짜를 입력합니다.
인자3 에는 기준일을 적으시면 됩니다.
예: Response.Write DateDiff("d", "1971-02-26", Date())
참고: 2월 26일은 제 생일임다. 생일선물 접수합니다. ^^*

WeekDay (인자) :
인자로 주어진 날이 무슨 요일인지를 숫자로 반환합니다.
(주일: 1, 월: 2, ........ 토: 7)
예: Response.Write WeeKDay(Date())

그럼 대충 사용할 함수는 정리가 되었습니다.
그래도 모르시겠다믄 MSDN 에 더 장황(?)한 설명이 있습니다. 참고하세요.
그럼 로직을 함 살펴보겠습니다.

일단은 표로 달력을 구성합니다.
일 / 월 / 화 / 수 / 목 / 금 / 토
밑에 날짜를 출력합니다.

그럼 보죠. 그 달의 첫 날이 수요일 이다. 그럼 저희는 3개의 TD 를 그냥 넘어가면 됩니다.
글구 출력할 날이 토요일 이라면 토요일 찍고 행 TR 을 바꾸어 줍니다.

아래는 소스입니다.
그래도 카피하셔서 실행하시면 됩니다. 단 소스파일의 이름은 Diary.asp 로 해주세요.




<%
Option Explicit
'선언되지 않은 변수는 거부한다는 뜻... 꼭 사용하시길 권장합니다.

Dim CurDate '출력할 달의 첫날을 저장합니다.
Dim FirstDay '출력할 달의 첫날이 무슨 요일인지를 숫자값으로 가지고 있습니다.
Dim TotalDay '출력할 달의 총날 수를 가지게 됩니다.
Dim Index '그냥 인덱스임다. For... Next 루프용

CurDate = Request.QueryString("CurDate")
'같은 달만 나오면 재미없음다. 사용자가 선택한 달이 올 수 있도록 배려....

if CurDate = "" Then
  CurDate = Date()
else
  CurDate = CDate(CurDate)
end if

FirstDay = WeeKDay(Year(CurDate) & "-" & Month(CurDate) & "-" & "01")

TotalDay = DateDiff ("d", CurDate, DateAdd("m", 1, CurDate))
'재미있는 로직임다. 다음 날의 오늘날짜 (2000-11-17) 에서 이번 달의 오늘날짜 (2000-10-17)을 빼면
'이번달(10월)의 날수가 나온다는 초등학교 산수되겠습니다.

Response.Write "<br /><h2 style='' align='center'>" & Year(CurDate) & " 년 " & Month(CurDate) & " 월</h2><hr />"
'년도 월 찍고...
%>

<table width="100%" border="0" cellpadding="3" cellspacing="1" bgcolor="#666666" align="center">
  <tr align="center">
    <td bgcolor="#cccccc">일</td>
    <td bgcolor="#cccccc">월</td>
    <td bgcolor="#cccccc">화</td>
    <td bgcolor="#cccccc">수</td>
    <td bgcolor="#cccccc">목</td>
    <td bgcolor="#cccccc">금</td>
    <td bgcolor="#cccccc">토</td>
  </tr>
  <tr bgcolor='#ffffff'>
<%
'해당 요일이 올때까지 빈칸을 생성합니다
For Index = 1 To FirstDay - 1
  Response.Write "<td bgcolor='#ffffff'></td>"
Next

'해당 월의 날수 만큼 날짜를 출력합니다.
For Index = 1 To TotalDay
  Response.Write "<td bgcolor='#ffffff'>"
  Response.Write Index & "<br />"

  ' 추가시작
    dim curent_year, curent_month, curent_day
    curent_year = Year(CurDate)
    curent_month = int(Month(CurDate))
    curent_day = int(Index)
    if curent_month < 10 then
      curent_month = 0 & curent_month
    end if
    if curent_day < 10 then
      curent_day = 0 & curent_day
    end if
   
    Response.Write "<a href='Diary_view.asp?today=" & curent_year & curent_month & curent_day &"&room_idx="& room_idx &"'>"
    Response.Write "111"
    response.write "</a>"
    Response.Write "<br />"
  ' 추가끝
   
  Response.Write "</td>"

  '토요일 찍구 행을 바꾸어줍니다.
  If WeekDay(DateAdd("d", Index - 1, FirstDay)) = 7 Then
    Response.Write "</tr><tr>"
  end if
Next
%>
  </tr>
</table>
<br />
<br />
<br />
<table width="100%">
  <tr align="center">
    <!-- 이전 달의 달력보기 -->
    <td><a href="Diary.asp?CurDate=<%=DateAdd("m", -1, CurDate)%>">이전달</a></td>
    <!-- 다음 달의 달력보기 -->
    <td><a href="Diary.asp?CurDate=<%=DateAdd("m", 1, CurDate)%>">다음달</a></td>
  </tr>
</table>


참고자료
http://k.daum.net/qna/view.html?qid=01KwD

댓글목록

등록된 댓글이 없습니다.


Total 2,634건 87 페이지
  • RSS
기술자료 목록
914
ClassicASP   13888  2010-07-22 20:28  
913
일반   24018  2010-07-22 16:57  
912
일반   18949  2010-07-22 10:16  
911
MySQL   14909  2010-07-21 21:48  
910
PHP   21660  2010-07-21 21:47 ~ 2024-03-22 08:47  
909
일반   22461  2010-07-19 10:00 ~ 2010-08-10 00:00  
908
PHP   21974  2010-07-10 15:48 ~ 2021-01-03 22:59  
907
Linux   18214  2010-07-09 10:22 ~ 2017-08-02 00:00  
906
일반   22621  2010-07-08 22:56  
905
일반   12432  2010-07-06 17:28  
904
일반   15472  2010-07-06 16:59  
903
Editor   18795  2010-06-28 18:03 ~ 2017-11-08 17:56  
902
일반   41073  2010-06-26 10:44  
901
WindowsServer   19680  2010-06-21 20:29 ~ 2016-01-26 00:00  
900
Linux   34514  2010-06-21 20:29 ~ 2017-04-11 00:00  
열람
ClassicASP   16257  2010-06-20 03:23 ~ 2013-06-14 00:00  
898
Linux   12004  2010-06-19 09:55  
897
일반   17320  2010-06-16 15:50  
896
일반   10152  2010-06-16 10:33  
895
JavaScript   20789  2010-06-12 11:55  

검색

해피정닷컴 정보

회사소개 회사연혁 협력사 오시는길 서비스 이용약관 개인정보 처리방침

회사명: 해피정닷컴   대표: 정창용   전화: 070-7600-3500   팩스: 042-670-8272
주소: (34368) 대전시 대덕구 대화로 160 대전산업용재유통단지 1동 222호
개인정보보호책임자: 정창용   사업자번호: 119-05-36414
통신판매업신고: 제2024-대전대덕-0405호 [사업자등록확인]  
Copyright 2001~2024 해피정닷컴. All Rights Reserved.