我的第一个工作啊 请大家帮帮不成熟的我吧 我的人生 看你们得了
解决方案 »
- 菜鸟问题:javascript是把需要用到的js文件下载到本地执行,还是直接嵌入网页以文本的方式发送过来
- 星级评价jquery求改进
- 关于过滤html样式的问题(急)
- 关于页面之间传值问题(iframe)
- 请教高手怎样使打开的新窗口最大化(不覆盖windows的任务栏,新窗口右上角中间的那个最大化按钮要是有两个口的那种)
- 用appendChild()后的问题,请教如何删除?
- 在一个text中,每输入一个字符会触发什么事件我需要在这个事件中写代码
- 請問大家 showModalDialog 能不能這樣用???謝謝!!!( 我的出錯了!!!)
- 循环遍历JSON数据
- echarts在Java中的应用
- 【救命】刚学javascript,写了个含onmouseover的程序,为什么鼠标放在上面没有反应啊?!
- 刚开始看JS ,一个JSP文件,点击按钮onclick后,JS代码没有执行! 帮忙看看
<script language=JavaScript>
function str_week(y,m,d){
var a=7; // 用来保存计算得到的星期几的整数
var str_date="";
if((parseInt(m)==1)||(parseInt(m)==2))//如果是一月或二月进行换算
{
m+=12;
y--;
}
a=parseInt(parseInt(d)+2*(parseInt(m))+3*(parseInt(m)+1)/5+parseInt(y)+(parseInt(y))/4-(parseInt(y))/100+(parseInt(y))/400)%7; //得到的星期几的整数
switch (a){
case 0:
str_date="星期一";
break;
case 1:
str_date="星期二";
break;
case 2:
str_date="星期三";
break;
case 3:
str_date="星期四";
break;
case 4:
str_date="星期五";
break;
case 5:
str_date="星期六";
break;
case 6:
str_date="星期日";
break;
}
return str_date;
}
alert(str_week(2010,1,10));
随便找了下,你要学会用百度和Google好吧..
上面找的是求出某年某日是星期几..你问题说的也不是很清楚,如果你要求2000年12月,第一个星期六是多少号
先用上面的方法,可以得到2000年12月1号是星期几,算出是(星期五),
然后该月第一个星期六.不就是12,2号了.加一天就是了....
<%@ page language="java" pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Insert title here</title>
</head>
<style>
input{
width:100px;
}
</style>
<body>
年: <input type="text" id="year" onkeydown="return test('year');">
<em>只能输入4位年份数字</em><br>
月: <input type="text" id="month" onkeydown="return test('month');">
<em>只能输入1-12月份数字</em><br>
周: <input type="text" id="week" onkeydown="return test('week');">
<em>只能输入数字1-5表示第几周</em><br>
期: <input type="text" id="weekday" onkeydown="return test('weekday');">
<em>只能输入数字1-7表示星期几</em><br>
<input type="button" id="btn" value="计算" onclick="done()">
日: <input type="text" id="day" readonly="readonly">
</body>
<script language="JavaScript">
var $ = function(tag){
return document.getElementById(tag);
}
String.prototype.trim = function(){
return this.replace(/^\s*|\s*$/ig,'');
}
//只能输入4位年份,1-12月份,1-5周,1-7期
function test(type){
var flag = false;
if(!type || type.trim().length==0){
alert("无法确定要验证的类型");
return flag;
}
var key = event.keyCode;
if(key==8){
flag = true;
}else{
if (key > 47 && key < 58) {
switch (type) {
case "year":{
if (/^\d{0,4}$/.test(event.srcElement.value + (key - 48))) {
flag = true;
}
}
break;
case "month":{
if(/^([1-9]|1[0-2])$/.test(event.srcElement.value+(key-48))){
flag = true;
}
}break;
case "week" :{
if(/^[1-5]$/.test(event.srcElement.value+(key-48))){
flag = true;
}
}break;
case "weekday":{
if(/^[1-7]$/.test(event.srcElement.value+(key-48))){
flag = true;
}
}break;
default:{alert("无法确定要验证的类型")}break;
}
}
}
return flag;
}
//计算
function done(){
var rd;
var y = $("year").value;
if(!y || y.length<4 ){
alert("请输入正确的4位年份!");
return;
}
var m = $("month").value;
if(!m || m.length==0){
alert("请输入1-12月份!");
return;
}
var w = $("week").value;
if(!w || w.length==0){
alert("请输入1-5星期数");
return;
}
var wd = $("weekday").value;
if(!wd || wd.length==0){
alert("请输入1-7星期几");
return;
}
var c = y.substring(0,2);
y = y.substring(2);
m = m *1>2?m:m*1+12;
var fw = (y*1 + parseInt(y*1/4) + parseInt(c*1/4) - c*2 +parseInt((m*1+1)*26/10) +1-1)%7;
//该年该月1日的星期
fw = fw=="0"?7:fw;
//该年该月共有多少天
var td = 31;
switch(m){
case "4":
case "6":
case "9":
case "11":td = 30;break;
case "2":{
var yy = (c+y)*1;
if((yy%4==0 && yy%100!=0) || yy%400==0){
td = 29;
}else{
td = 28;
}
}break;
}
switch(w){
case "1":{
if(wd*1<fw*1){
alert("该月第1个星期没有星期"+wd);
return;
}else{
rd = wd*1-fw*1+1;
}
}
break;
case "2":{
rd = (8-fw*1)+wd*1;
}
break;
case "3":{
rd = (8-fw*1)+7+wd*1;
}break;
case "4":{
var tmp1 = (8-fw*1)+14+wd*1;
if(tmp1*1>td){
alert("该月第4个星期没有星期"+wd);
return;
}else{
rd = tmp1;
}
}break;
case "5":{
var tmp2 = (8-fw*1)+21+wd*1;
if(tmp2*1>td){
alert("该月第5个星期没有星期"+wd);
return;
}else{
rd = tmp2;
}
}break;
}
alert(c+y+"年"+m+"月第"+w+"个星期"+wd+"是"+rd+"日");
$("day").value=rd;
}
</script>
</html>自己写的比较粗糙,修鉓一下吧,呵呵
<%@ page language="java" pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Insert title here</title>
</head>
<style>
input{
width:100px;
}
</style>
<body>
年: <input type="text" id="year" onkeydown="return test('year');">
<em>只能输入4位年份数字</em><br>
月: <input type="text" id="month" onkeydown="return test('month');">
<em>只能输入1-12月份数字</em><br>
周: <input type="text" id="week" onkeydown="return test('week');">
<em>只能输入数字1-5表示第几周</em><br>
期: <input type="text" id="weekday" onkeydown="return test('weekday');">
<em>只能输入数字1-7表示星期几</em><br>
<input type="button" id="btn" value="计算" onclick="done()">
日: <input type="text" id="day" readonly="readonly">
</body>
<script language="JavaScript">
var $ = function(tag){
return document.getElementById(tag);
}
String.prototype.trim = function(){
return this.replace(/^\s*|\s*$/ig,'');
}
//只能输入4位年份,1-12月份,1-5周,1-7期
function test(type){
var flag = false;
if(!type || type.trim().length==0){
alert("无法确定要验证的类型");
return flag;
}
var key = event.keyCode;
if(key==8){
flag = true;
}else{
if (key > 47 && key < 58) {
switch (type) {
case "year":{
if (/^\d{0,4}$/.test(event.srcElement.value + (key - 48))) {
flag = true;
}
}
break;
case "month":{
if(/^([1-9]|1[0-2])$/.test(event.srcElement.value+(key-48))){
flag = true;
}
}break;
case "week" :{
if(/^[1-5]$/.test(event.srcElement.value+(key-48))){
flag = true;
}
}break;
case "weekday":{
if(/^[1-7]$/.test(event.srcElement.value+(key-48))){
flag = true;
}
}break;
default:{alert("无法确定要验证的类型")}break;
}
}
}
return flag;
}
//计算
function done(){
var rd;
var y = $("year").value;
if(!y || y.length<4 ){
alert("请输入正确的4位年份!");
return;
}
var m = $("month").value;
if(!m || m.length==0){
alert("请输入1-12月份!");
return;
}
var w = $("week").value;
if(!w || w.length==0){
alert("请输入1-5星期数");
return;
}
var wd = $("weekday").value;
if(!wd || wd.length==0){
alert("请输入1-7星期几");
return;
}
//将当年1,2月看作上一年的13,14月
var td = 31;
switch(m){
case "4":
case "6":
case "9":
case "11":td=30;break;
case "1" :{
y = (y * 1 - 1)+"";
m = 13+"";
}break;
case "2":{
m = 14+"";
if(((y*1)%4==0 && (y*1)%100!=0) || (y*1)%400==0){
td = 29;
}else{
td = 28;
}
y = (y*1-1)+"";
}break;
}
var c = y.substring(0,2);
var yy = y.substring(2);
var dd = 1;
var tmp = (yy*1 + Math.floor(yy*1/4) + Math.floor(c*1/4) - c*2 +Math.floor((m*1+1)*26/10) +dd-1);
tmp = tmp<0?tmp+(700):tmp;
var fw = tmp%7;
//该年该月1日的星期
fw = fw=="0"?7:fw;
switch(w){
case "1":{
if(wd*1<fw*1){
alert("该月第1个星期没有星期"+wd);
return;
}else{
rd = wd*1-fw*1+1;
}
}
break;
case "2":{
rd = (8-fw*1)+wd*1;
}
break;
case "3":{
rd = (8-fw*1)+7+wd*1;
}break;
case "4":{
var tmp1 = (8-fw*1)+14+wd*1;
if(tmp1*1>td){
alert("该月第4个星期没有星期"+wd);
return;
}else{
rd = tmp1;
}
}break;
case "5":{
var tmp2 = (8-fw*1)+21+wd*1;
if(tmp2*1>td){
alert("该月第5个星期没有星期"+wd);
return;
}else{
rd = tmp2;
}
}break;
}
alert(y+" 年 "+(m*1>12?m*1-12:m)+" 月第 "+w+" 个星期 "+wd+" 是当月的 "+rd+" 日");
$("day").value=rd;
}
</script>
</html>
修改了 应该 没啥问题了 呵呵
为什么写那么复杂?
<script language=JavaScript>
function getWeeker(Y, M, D) {
! (M == 1 || M == 2) || (M += 12, Y --);
var Weeks = ["一", "二", "三", "四", "五", "六", "日"];
var Numer = (Y * 497/400 + M * 13/5 + D + 3/5) % 7 >>0;
return "星期" + Weeks[Numer];
}
alert(getWeeker(2010, 1, 10));
</script>