台灣最大程式設計社群網站
線上人數
6146
 
會員總數:246136
討論主題:189720
歡迎您免費加入會員
討論區列表 >> ASP >> 為何行事曆的天數都會被加了1天?
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
為何行事曆的天數都會被加了1天?
價值 : 20 QP  點閱數:915 回應數:4
樓主

Ming Ming Peng
門外漢
0 1
50 1
發送站內信

以下是藍色小舖某個行事曆的語法
正好小弟我最近需要使用
所以參考了這個行事曆 但為什麼run起來天數變成32天
改了某些參數會變成31天 但每月的第1天的星期就會不確定
煩請各位大大幫忙小弟看一下 是哪裡出了錯~謝謝!


<!--#include file="ckvip.asp"-->
<%
'讀取資料
dyear=year(date)
dmonth=month(date)
dday=day(date)

if request("dyear")<>Empty then
dyear=request("dyear")
end if
if request("dmonth")<>Empty then
dmonth=request("dmonth")
end if



'判斷該月一號星期幾
sy=0
for si=1 to dyear
if si mod 4 = 1 then
sy=sy+1
end if
sy=sy+1
next

dim mm(12)
mm(1)=31
if dyear mod 4=0 then
mm(2)=29
else
mm(2)=28
end if
mm(3)=31
mm(4)=30
mm(5)=31
mm(6)=30
mm(7)=31
mm(8)=31
mm(9)=30
mm(10)=31
mm(11)=30
mm(12)=31

if dmonth=1 then
dm=0
dmm=mm(1)
else
dm=0
for i=1 to dmonth-1
dm=dm+mm(i)
dmm=mm(i+1)
next
end if

ad=sy+dm+1 '總日數
dd=ad mod 7 '星期

if dd=3 then
dd=0
elseif dd=4 then
dd=1
elseif dd=5 then
dd=2
elseif dd=6 then
dd=3
elseif dd=0 then
dd=4
elseif dd=1 then
dd=5
else
dd=6
end if



%>

<HTML>
<HEAD>
<TITLE>行事曆</TITLE>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=big5">
<link href="sms.css" rel="stylesheet" type="text/css">
</HEAD>
<BODY BGCOLOR=#000066 LEFTMARGIN=0 TOPMARGIN=0 MARGINWIDTH=0 MARGINHEIGHT=0 onLoad="MM_preloadImages('images/123_05.gif','images/123_06.gif','images/123_07.gif','images/123_08.gif','images/123_09.gif','images/123_10.gif','images/123_11.gif','images/123_12.gif','images/123_13.gif','images/123_14.gif','images/buttet-1-2_04.gif','images/buttet-1-2_05.gif','images/buttet-1-2_08.gif','images/buttet-1-2_10.gif','images/buttet-1-2_11.gif','images/buttet-1-2_15.gif','images/buttet-1-2_13.gif','images/buttet-1-2_12.gif','images/buttet-1-2_14.gif')">
<div align="center">
<TABLE BORDER=0 CELLPADDING=0 CELLSPACING=0 style="border-collapse: collapse" bordercolor="#111111">
<TR>
<TD COLSPAN=3> <IMG SRC="images/in-1-4.gif" ALT="" WIDTH=464 HEIGHT=45 border="0"></TD>
</TR>
<TR>
<TD width="6" background="images/in_02-1.gif">&nbsp; </TD>
<TD width="452" valign="top" bgcolor="E7F2FF" class="a1"><div align="center">
<table width="96%" border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111">
<tr>
<form method="POST" action="index.asp">
<td width="83%"><select name="dyear" >

<option selected value="<%=dyear%>"><%=dyear%></option>
<% for i=-1 to 2 %>
<option value="<%=year(date)+i%>"><%=year(date)+i%></option>
<%next%>
</select>
<span class="a1">年
<select name="dmonth" >
<option selected value="<%=dmonth%>"><%=dmonth%></option>
<% for i=1 to 12 %>
<option value="<%=i%>"><%=i%></option>
<%next%>
</select> 月&nbsp;&nbsp; </span><span class="a4">
<input type="submit" name="Submit" value="查詢" style="font-size: 8 pt"></span></td></form>
</tr>
</table>
<table width="96%" border="0" cellpadding="1" cellspacing="0" bgcolor="#003399">
<tr>
<td><div align="center">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td height="22"><div align="center">
<p class="a5">
<img src="images/0<%=dmonth%>.gif"></p>
</div></td>
</tr>
</table>
<table width="100%" border="0" cellspacing="1">
<tr class="a5">
<td width="14%" height="22" bgcolor="#0000FF"><div align="center">日</div></td>
<td width="14%" height="22" bgcolor="#0000FF"><div align="center">一</div></td>
<td width="14%" height="22" bgcolor="#0000FF"><div align="center">二</div></td>
<td width="14%" height="22" bgcolor="#0000FF"><div align="center">三</div></td>
<td width="14%" height="22" bgcolor="#0000FF"><div align="center">四</div></td>
<td width="14%" height="22" bgcolor="#0000FF"><div align="center">五</div></td>
<td width="14%" height="22" bgcolor="#0000FF"><div align="center">六</div></td>
</tr>
<table width="100%" style="border-collapse: collapse" bordercolor="#003399" cellpadding="0" cellspacing="0" border="2">
<% da=0
odmm=dmm
Set pp=Server.CreateObject("ADODB.Recordset") '連結資料表
do while dmm>0 %>

<tr bgcolor="#FFFFFF">
<td width="14%" height="22" class="a1" bgcolor="#E7F2FF">
<div align="center">
<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="100%" id="AutoNumber2" height="55">
<tr>
<td width="100%" bgcolor="#FFCCCC" align="left" valign="top">
<div align="left" class="a5"> <%if dd<>0 then
dd=dd-1
else
dmm=dmm-1
if da<=odmm then
da=da+1 %>
<a href="ad-my-date.asp?mydate=<%=dyear%>/<%=dmonth%>/<%=da%>">
<strong><%=da%></strong>
</a>
<%end if%>
<%end if%>
</div></td>
</tr>
<tr>
<td width="100%" bgcolor="#FFCCCC" align="center" valign="bottom">
<% pp.open "Select * From 行事曆資料 where 年="& dyear &" and 月="& dmonth &" and 日="& da &" order by 自動編號 desc",Conn,1,3
if pp.RecordCount>0 then %>
<p align="center">
<a href="my-date-2.asp?mydate=<%=dyear%>/<%=dmonth%>/<%=da%>">
<img src="images/z3.gif" width="25" height="25" border="0"></a>
<% end if
pp.close %>
</td>
</tr>
</table>
</div></td>
<td width="14%" height="22" class="a1" bgcolor="#E7F2FF">
<div align="center">
<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="100%" id="AutoNumber2" height="55">
<tr>
<td width="100%" bgcolor="#E7F2FF" align="left" valign="top">
<div align="left" class="a5"> <%if dd<>0 then
dd=dd-1
else
dmm=dmm-1
if da<=odmm then
da=da+1 %>
<a href="ad-my-date.asp?mydate=<%=dyear%>/<%=dmonth%>/<%=da%>">
<strong><%=da%></strong>
</a>
<%end if%>
<%end if%>
</div></td>
</tr>
<tr>
<td width="100%" bgcolor="#E7F2FF" align="center" valign="bottom">
<% pp.open "Select * From 行事曆資料 where 年="& dyear &" and 月="& dmonth &" and 日="& da &" order by 自動編號 desc",Conn,1,3
if pp.RecordCount>0 then %>
<p align="center">
<a href="my-date-2.asp?mydate=<%=dyear%>/<%=dmonth%>/<%=da%>">
<img src="images/z3.gif" width="25" height="25" border="0"></a>
<% end if
pp.close %>
</td>
</tr>
</table>
</div></td>
<td width="14%" height="22" class="a1" bgcolor="#E7F2FF">
<div align="center">
<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="100%" id="AutoNumber2" height="55">
<tr>
<td width="100%" bgcolor="#E7F2FF" align="left" valign="top">
<div align="left" class="a5"> <%if dd<>0 then
dd=dd-1
else
dmm=dmm-1
if da<=odmm then
da=da+1 %>
<a href="ad-my-date.asp?mydate=<%=dyear%>/<%=dmonth%>/<%=da%>">
<strong><%=da%></strong>
</a>
<%end if%>
<%end if%>
</div></td>
</tr>
<tr>
<td width="100%" height="100%" bgcolor="#E7F2FF" align="center" valign="bottom">
<% pp.open "Select * From 行事曆資料 where 年="& dyear &" and 月="& dmonth &" and 日="& da &" order by 自動編號 desc",Conn,1,3
if pp.RecordCount>0 then %>
<p align="center">
<a href="my-date-2.asp?mydate=<%=dyear%>/<%=dmonth%>/<%=da%>">
<img src="images/z3.gif" width="25" height="25" border="0"></a>
<% end if
pp.close %>
</td>
</tr>
</table>
</div></td>
<td width="14%" height="22" class="a1" bgcolor="#E7F2FF">
<div align="center">
<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="100%" id="AutoNumber2" height="55">
<tr>
<td width="100%" height="19" bgcolor="#E7F2FF" align="left" valign="top">
<div align="left" class="a5"> <%if dd<>0 then
dd=dd-1
else
dmm=dmm-1
if da<=odmm then
da=da+1 %>
<a href="ad-my-date.asp?mydate=<%=dyear%>/<%=dmonth%>/<%=da%>">
<strong><%=da%></strong>
</a>
<%end if%>
<%end if%>
</div></td>
</tr>
<tr>
<td width="100%" bgcolor="#E7F2FF" align="center" valign="bottom">
<% pp.open "Select * From 行事曆資料 where 年="& dyear &" and 月="& dmonth &" and 日="& da &" order by 自動編號 desc",Conn,1,3
if pp.RecordCount>0 then %>
<p align="center">
<a href="my-date-2.asp?mydate=<%=dyear%>/<%=dmonth%>/<%=da%>">
<img src="images/z3.gif" width="25" height="25" border="0"></a>
<% end if
pp.close %>
</td>
</tr>
</table>
</div></td>
<td width="14%" height="22" class="a1" bgcolor="#E7F2FF">
<div align="center">
<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="100%" id="AutoNumber2" height="55">
<tr>
<td width="100%" bgcolor="#E7F2FF" align="left" valign="top">
<div align="left" class="a5"> <%if dd<>0 then
dd=dd-1
else
dmm=dmm-1
if da<=odmm then
da=da+1 %>
<a href="ad-my-date.asp?mydate=<%=dyear%>/<%=dmonth%>/<%=da%>">
<strong><%=da%></strong>
</a>
<%end if%>
<%end if%>
</div></td>
</tr>
<tr>
<td width="100%" bgcolor="#E7F2FF" align="center" valign="bottom">
<% pp.open "Select * From 行事曆資料 where 年="& dyear &" and 月="& dmonth &" and 日="& da &" order by 自動編號 desc",Conn,1,3
if pp.RecordCount>0 then %>
<p align="center">
<a href="my-date-2.asp?mydate=<%=dyear%>/<%=dmonth%>/<%=da%>">
<img src="images/z3.gif" width="25" height="25" border="0"></a>
<% end if
pp.close %>
</td>
</tr>
</table>
</div></td>
<td width="14%" height="22" class="a1" bgcolor="#E7F2FF">
<div align="center">
<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="100%" id="AutoNumber2" height="55">
<tr>
<td width="100%" bgcolor="#E7F2FF" align="left" valign="top">
<div align="left" class="a5"> <%if dd<>0 then
dd=dd-1
else
dmm=dmm-1
if da<=odmm then
da=da+1 %>
<a href="ad-my-date.asp?mydate=<%=dyear%>/<%=dmonth%>/<%=da%>">
<strong><%=da%></strong>
</a>
<%end if%>
<%end if%>
</div></td>
</tr>
<tr>
<td width="100%" bgcolor="#E7F2FF" align="center" valign="bottom">
<% pp.open "Select * From 行事曆資料 where 年="& dyear &" and 月="& dmonth &" and 日="& da &" order by 自動編號 desc",Conn,1,3
if pp.RecordCount>0 then %>
<p align="center">
<a href="my-date-2.asp?mydate=<%=dyear%>/<%=dmonth%>/<%=da%>">
<img src="images/z3.gif" width="25" height="25" border="0"></a>
<% end if
pp.close %>
</td>
</tr>
</table>
</div></td>
<td width="14%" height="22" class="a1" bgcolor="#E7F2FF">
<div align="center">
<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="100%" id="AutoNumber2" height="55">
<tr>
<td width="100%" bgcolor="#E7F2FF" align="left" valign="top">
<div align="left" class="a5"> <%if dd<>0 then
dd=dd-1
else
dmm=dmm-1
if da<=odmm then
da=da+1 %>
<a href="ad-my-date.asp?mydate=<%=dyear%>/<%=dmonth%>/<%=da%>">
<strong><%=da%></strong>
</a>
<%end if%>
<%end if%>
</div></td>
</tr>
<tr>
<td width="100%" bgcolor="#E7F2FF" align="center" valign="bottom">
<% pp.open "Select * From 行事曆資料 where 年="& dyear &" and 月="& dmonth &" and 日="& da &" order by 自動編號 desc",Conn,1,3
if pp.RecordCount>0 then %>
<p align="center">
<a href="my-date-2.asp?mydate=<%=dyear%>/<%=dmonth%>/<%=da%>">
<img src="images/z3.gif" width="25" height="25" border="0"></a>
<% end if
pp.close %>
</td>
</tr>
</table>
</div></td>
</tr>
<%loop%>
</table>
<table border="1" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#E7F2FF" width="100%" id="AutoNumber1">
<tr>
<td width="100%" bgcolor="#E7F2FF">
<img src="images/z1.gif" width="23" height="23"><font size="2">過時訊息</font><img src="images/z2.gif" width="23" height="23"><font size="2">預約訊息</font><img src="images/z3.gif" width="23" height="23"><span class="a1"><font size="2">重要通知</font></span></td>
</tr>
</table>
</div></td>
</tr>
</table>

</div></TD>
<TD width="6" background="images/in_04-1.gif">&nbsp; </TD>
</TR>
<TR>
<TD COLSPAN=3 align="center"> <IMG SRC="images/in_05-1.gif" WIDTH=464 HEIGHT=33 ALT=""></TD>
</TR>
</TABLE>
<br>
</div>
</BODY>
</HTML>



搜尋相關Tags的文章: [ ASP行事曆 ] ,
本篇文章發表於2016-01-22 00:20
1樓
回應

MIS2000 Lab
檢舉此回應
請先說明一下,您改了哪裡呢??
「改了某些參數會變成31天 但每月的第1天的星期就會不確定」

1. 為什麼要改它?(您要修改,一定有原因。或是您一定懂這個地方的原理,才動手改。不是嗎?)
2. 如果不改的話,執行成果正確嗎?(這表示原本的範例是OK的,是您改壞的)

掌握上面兩個重點,應該就很好 Debug了 :-)
本篇文章回覆於2016-01-26 11:02
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
作者回應

Ming Ming Peng
檢舉此回應
這個範本(上面貼的程式碼皆為範本)是可以執行 但結果不對
我在說明應該有說的很清楚 他run起來天數是32天
所以才會去改他
改了之後的確讓他變成31天 但判斷該月1號為星期幾 這個會變的不正確
也就是說
目前範本 判斷該月1號為星期幾 (正確)
一個月的天數32天(不正確)

我改了某些參數(ad=sy+dm+1 '總日數) 把+1拿掉之後的結果
判斷該月1號為星期幾(不正確)
一個月的天數31(正確)
所以小弟想要解決的問題是 如何將32天的問題改善 讓他能達到 判斷正確 天數也正確!
本篇文章回覆於2016-01-27 03:11
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
回應

MIS2000 Lab
檢舉此回應
不好意思,這個範例的程式碼這麼繁瑣,我也看不下去 :-)

依照您提供的線索,我會「假設」原作者把日期加一,有他的用意存在
因為天數、星期幾,可能有連帶關係
改了,就錯了其他地方

有沒有機會保持原作的程式碼不變?
然後在「畫面呈現」時,幫他把呈現的日期減一

前提是:我們都相信原作者放出的範例是對的,他不是故意放錯的來害人
........................................................................

再不然,換個範例
相信用 JavaScript寫萬年曆的小程式,網路上應該不少吧

天涯何處無芳草,何必單戀一枝花

關鍵字「javascript 日曆」找到不少範例
http://audi.tw/Blog/Javascript/javascript_calendar.asp
本篇文章回覆於2016-01-27 08:32
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
回應

老頑童
捐贈 VP 給 老頑童 檢舉此回應
if da<=odmm then
當da=odmm=31時
下一行的da=da+1就會變32
所以需改成
if da<odmm then
(總共有7個地方都要改)
本篇文章回覆於2016-01-27 10:21
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.