100的求解星期几问题

henryVC 2002-04-24 05:38:51
现有三个下拉菜单:年份,月份,日期
当连年份和月份选定后下拉菜单的日期根据所选择的年月份定,28天的28天,30天的30天。选定日期后星期几自动出现
...全文
50 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
qiushuiwuhen 2002-04-25
  • 打赏
  • 举报
回复
to weidegong: hehe

function toDay(){
vYear=parseInt(document.all.year.options[document.all.year.selectedIndex].value)
vMonth=parseInt(document.all.month.options[document.all.month.selectedIndex].value)
day.length=0;
while((d=new Date(vYear,vMonth,day.length+1)).getMonth()==vMonth){day.options[day.length++].value=day.length;day.options[day.length-1].text=day.length;}
toWeekDay();
}

to henryvc: 改后缀名:htm为asp
henryVC 2002-04-25
  • 打赏
  • 举报
回复
weidegong(weidegong) 你写的代码很精辟,单独调用完全能符合我的要求

但是把他写在gotdate.htm里,在表单里调用,结果日期和星期的指都为空

调用语句如下:
<FORM action="" method=POST id=form1 name=form1>
<!--#include file="gotdate.htm"-->
</FORM>

这是为何?
weidegong 2002-04-25
  • 打赏
  • 举报
回复
To qiushuiwuhen(秋水无恨) :
呵呵,有必要改吗?没有必要吧;
要征得你的授权吗?不用这样吧;
weidegong 2002-04-25
  • 打赏
  • 举报
回复
to hunter_ye(汉特爷)
你弄错了吧:)
qiushuiwuhen 2002-04-25
  • 打赏
  • 举报
回复
to weidegong
toDay()函数,是我前几天写的,变量都没改过。。。
hunter_ye 2002-04-25
  • 打赏
  • 举报
回复
再次检查错误不存在,是我机子的问题,哈哈,ok了
孟子E章 2002-04-25
  • 打赏
  • 举报
回复
<object id="Calendar" classid="CLSID:8E27C92B-1264-101C-8A2F-040224009C02"
width="250" height="200"
codebase="MSCAL.OCX"></object>
hunter_ye 2002-04-25
  • 打赏
  • 举报
回复
to:weidegong
你的写法到2003年会出现错误
2002-12-31 星期二
2003-1-1 也是星期二
hunter_ye 2002-04-25
  • 打赏
  • 举报
回复
根据weidegong的写法改编,应该符合你的要求,你试试:

<html>
<body onload="toDay()">
<form name="form1">
<select name="year" onchange="toDay()">
<option value=2000>2000</option>
<option value=2001>2001</option>
<option value=2002>2002</option>
</select>
<select name="month" onchange="toDay()">
<option value=0>1</option>
<option value=1>2</option>
<option value=2>3</option>
<option value=3>4</option>
<option value=4>5</option>
<option value=5>6</option>
<option value=6>7</option>
<option value=7>8</option>
<option value=8>9</option>
<option value=9>10</option>
<option value=10>11</option>
<option value=11>12</option>
</select>
<select name="day" onchange="toWeekDay()"></select>
<input name="weekday">
<script language=javascript>
function toDay(){
vYear=parseInt(document.form1.year.options[document.form1.year.selectedIndex].value)
vMonth=parseInt(document.form1.month.options[document.form1.month.selectedIndex].value)
document.form1.day.length=0;
while((d=new Date(vYear,vMonth,document.form1.day.length+1)).getMonth()==vMonth){
document.form1.day.options[document.form1.day.length++].value=document.form1.day.length;
document.form1.day.options[document.form1.day.length-1].text=document.form1.day.length;
}
toWeekDay();
}

function toWeekDay(){
try{
vDay=parseInt(document.form1.day.options[document.form1.day.selectedIndex].value)
var tmp=new Date(vYear+"/"+(vMonth+1)+"/"+vDay);
document.form1.weekday.value=showweek(tmp);
}catch(e){alert(e)}
}

function showweek(now) {
if (now.getDay() == 0) return ("星期日")
if (now.getDay() == 1) return ("星期一")
if (now.getDay() == 2) return ("星期二")
if (now.getDay() == 3) return ("星期三")
if (now.getDay() == 4) return ("星期四")
if (now.getDay() == 5) return ("星期五")
if (now.getDay() == 6) return ("星期六")
}
</script>
</form>
</body>
</html>
weidegong 2002-04-25
  • 打赏
  • 举报
回复
To qiushuiwuhen(秋水无恨):
我把showWeekday也改了。
function showweek(now) {
var arr="日一二三四五六".split("")
var idx=now.getDay()
return ("星期"+arr[idx])
}

另外,原来那个函数也是在网上找的:)
weidegong 2002-04-24
  • 打赏
  • 举报
回复
<select id=year onchange=toDay()>
<option value=2000>2000</option>
<option value=2001>2001</option>
<option value=2002>2002</option>
</select>
<select id=month onchange=toDay()>
<option value=0>1</option>
<option value=1>2</option>
<option value=2>3</option>
<option value=3>4</option>
<option value=4>5</option>
<option value=5>6</option>
<option value=6>7</option>
<option value=7>8</option>
<option value=8>9</option>
<option value=9>10</option>
<option value=10>11</option>
<option value=11>12</option>
</select>
<select id=day onchange=toWeekDay()></select>
<input name=weekday>
<script>
function toDay(){
vYear=parseInt(document.all.year.options[document.all.year.selectedIndex].value)
vMonth=parseInt(document.all.month.options[document.all.month.selectedIndex].value)
day.length=0;
while((d=new Date(vYear,vMonth,day.length+1)).getMonth()==vMonth){day.options[day.length++].value=day.length;day.options[day.length-1].text=day.length;}
toWeekDay();
}

function toWeekDay(){
try{
vDay=parseInt(document.all.day.options[document.all.day.selectedIndex].value)
var tmp=new Date(vYear+"/"+(vMonth+1)+"/"+vDay);
document.all("weekday").value=showweek(tmp);
}catch(e){alert(e)}

}

function showweek(now) {

if (now.getDay() == 0) return ("星期日")

if (now.getDay() == 1) return ("星期一")

if (now.getDay() == 2) return ("星期二")

if (now.getDay() == 3) return ("星期三")

if (now.getDay() == 4) return ("星期四")

if (now.getDay() == 5) return ("星期五")

if (now.getDay() == 6) return ("星期六")

}


window.onload=toDay
</script>
qiushuiwuhen 2002-04-24
  • 打赏
  • 举报
回复
<select name=sYear onchange=chg()>
<option value=2000>2000</option>
<option value=2001>2001</option>
<option value=2002>2002</option>
<option value=2003>2003</option>
</select>
<select name=sMonth onchange=chg()>
<option value=0>1</option>
<option value=1>2</option>
<option value=2>3</option>
<option value=3>4</option>
<option value=4>5</option>
<option value=5>6</option>
<option value=6>7</option>
<option value=7>8</option>
<option value=8>9</option>
<option value=9>10</option>
<option value=10>11</option>
<option value=11>12</option>
</select>
<select name=sDate onchange=chg()>
<option value=1>1</option>
<option value=2>2</option>
<option value=3>3</option>
<option value=4>4</option>
<option value=5>5</option>
<option value=6>6</option>
<option value=7>7</option>
<option value=8>8</option>
<option value=9>9</option>
<option value=10>10</option>
<option value=11>11</option>
<option value=12>12</option>
<option value=13>13</option>
<option value=14>14</option>
<option value=15>15</option>
<option value=16>16</option>
<option value=17>17</option>
<option value=18>18</option>
<option value=19>19</option>
<option value=20>20</option>
<option value=21>21</option>
<option value=22>22</option>
<option value=23>23</option>
<option value=24>24</option>
<option value=25>25</option>
<option value=26>26</option>
<option value=27>27</option>
<option value=28>28</option>
<option value=29>29</option>
</select>
<select name=sDay>
<option value=0>星期日</option>
<option value=1>星期一</option>
<option value=2>星期二</option>
<option value=3>星期三</option>
<option value=4>星期四</option>
<option value=5>星期五</option>
<option value=6 selected>星期六</option>
<script>
function chg(){
year=parseInt(document.all.sYear.options[document.all.sYear.selectedIndex].value)
month=parseInt(document.all.sMonth.options[document.all.sMonth.selectedIndex].value)
day=parseInt(document.all.sDate.options[document.all.sDate.selectedIndex].value)
arr="日一二三四五六".split("")
idx=new Date(year,month,day).getDay()
alert("星期"+arr[idx])
document.all.sDay.selectedIndex=idx
}
</script>
mosane 2002-04-24
  • 打赏
  • 举报
回复

weekday("2002-04-23")=2

再做转换。



genuis 2002-04-24
  • 打赏
  • 举报
回复
str=form1.year.value&"-"&form1.month.value&"-"&form1.day.value
week=weekday(str)
genuis 2002-04-24
  • 打赏
  • 举报
回复
weekday("2002-04-23") =星期三
VBSCRIPT

87,907

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧