반응형
달력을 구현해야 할 일이 생겻다.
몇 개의 포스트를 검색하면서 아 이거 쉽지 않겟구나. 윤년에 , 요일에 ..등등...
한참 고민하다... 그런것 계산 없이
쉽게 만들 수도 있겟다는 생각이 들었다.
대략 소스는 아래로 했다.
필요한 변수는 오늘 기준일, 기준 년, 월과 클릭시 넘겨 받을 년, 월 그리고
그달 1일, 마지막일, 달력 앞 뒤 공백요일 값을 셀 시작 요일값, 마지막일 요일값 , 요일을 체크하기위한 상태변수 등이 필요했다.
dim today, current_mm, current_yy , yy,mm ,signDate ,lastDay, startWeekDay, lastWeekDay, weekChk
' 현재일
today = date()
' 현재 일에서 년, 월 추출
current_yy = year(today)
current_mm = month(today)
'변수로 넘겨 받을 시의 년 월,
yy = request("yy")
mm = request("mm")
' 받는 값이 없을시 현재값 배정
if yy = "" then yy = current_yy
if mm = "" then mm = current_mm
'달력 기준일 1일 만들기
signDate = CDate(yy&"-"&mm&"-1")
'1일의 요일 구하기
startWeekDay = weekday(signDate)
'기준일의 마지막 날짜 구하기
'기준일 다음달 1일에서 하루를 뺀 날자가 마지막 날이 된다.
lastDay = dateAdd("d",-1,dateAdd("m",1,signDate))
'마지막 날짜 요일 구하기 - 다음달 공백 처리 위해 .
lastWeekDay = weekday(lastDay)
%>
<< < <%=yy%> <%=mm%> > > >> <br>
일 월 화 수 목 금 토 <br>
</div>
<%
'vb에서 일요일은 1부터 시작 일 월 화 ; 1,2,3
weekChk = 0
'당일이 일요일이 아니면 공백 요일 출력
if startWeekDay > 1 then
for jj = 1 to startWeekDay -1
response.write "ㅁ"
weekChk = weekChk + 1
next
end if
' 달력 시작 ..
for i = 1 to day(lastDay) step 1 '일간 반복
response.write i
%>
<% ' 토요일이면 줄 바꿈 처리 . 일요일로 설정.
weekChk = weekChk + 1
if weekChk > 6 then ' 일요일 이면
response.write "<br>"
weekChk = 0
end if
next
' 다음달 공백 처리
if lastWeekDay < 7 then
for jj =lastWeekDay+1 to 7 step 1
response.write "ㅁ"
next
end if
반응형
'Developer > asp' 카테고리의 다른 글
Form 객체의 모든 ID와 Value 출력 (1) | 2022.11.18 |
---|---|
param 일괄 처리 (0) | 2019.06.03 |
SMTP. office365로 메일 보내기 (0) | 2018.12.03 |
function array return value , 함수에서 멀티플하게 반환값 전달시 (0) | 2018.08.10 |
round.formatnumber, cdbl, cint 에 대한 해석 (0) | 2018.05.03 |