js实现日历可获得指定日期周数及星期几示例分享(js获取星期几)


Posted in Javascript onMarch 14, 2014

应为要有交互,选择了Js来实现,也算是 结对编程 的初试吧。 我将显示部分用html 写好,点击的按钮触发事件函数是check();

function onCheck(){ 
var Year = document.getElementById("year").value; //获取文本框的“年” var theYear =Year * 1; //转换为number类型 //alert(theYear); // 获取月值 
var month = document.getElementById("month"); 
var index1=month.selectedIndex; var theMonth = month.options[index1].value; //获取月值 
var day = document.getElementById("day"); 
var index2=day.selectedIndex; 
var theDay = day.options[index2].value;
// 输入值判断部分
...
//调用核心函数
days(theYear,theMonth,theDay); 
}

核心函数days如下:

function days(year,month,day) { 
    var days = 0;  //表示改日期为当年的第几天
    //累加月天数
    for(var i = 1; i < month; i++ ){
    switch(i){
    //大月的情况加31
    case 1:
    case 3:
    case 5:
    case 7:
    case 8:
    case 10:
    case 12:{
    days += 31;
    break;
    }
    //小月的情况加30
    case 4:
    case 6:
    case 9:
    case 11:{
    days += 30;
    break;
    }
    //二月的情况,根据年类型来加
    case 2:{
        if(isLeapYear(year)){
        days += 29; //闰年加29
        }
        else {
        days += 28;
        }
    break;
    }
    }
}
day = day * 1;
days += day;  //月天数之和加上日天数
var date0 = new Date(year,0,1);   //当年的第一天是周几
//   alert(date0.getDay());
    var date1 = new Date(year,month-1,day); //将日期值格式化,0-11代表1月-12月;
//   alert((days + date0.getDay()+6)/7);
    var nthOfWeek = Math.floor((days + date0.getDay()+6)/7);  //向下取整
//   alert(nthOfWeek);
    var toDay = new Array("星期天","星期一","星期二","星期三","星期四","星期五","星期六"); 
    //day.getDay();根据Date返一个星期中的某其中0为星期日 
    alert("该日期是一年中的第"+days+"天\n"+"     是第"+nthOfWeek+"周的"+toDay[date1.getDay()]);
}

调试过程中遇到了许多意外的错误,如类型的不匹配带来的计算错误,如数字的舍入问题;
在队友的协助下,他负责审核和协助抓虫子,我负责实施和编码;
在最后一个环节,对输入值的测试中,我们很好的相互协助,分析不同的输入情况,涵盖了各种可能的意外,很快的完成了功能的完善;
下面是对输入值的判断是否允许的代码 :

if (isNaN(theYear)|| theYear < 0) {
  alert("输入有误,请重新输入");
  return ;
}
if((theMonth == 2 && theDay > 29 && isLeapYear(theYear))||(theMonth == 2 && theDay > 28 && !isLeapYear(theYear))) {
  alert("输入有误,请重新输入");
  return ;
} 
if((theMonth == 4 || theMonth == 6 || theMonth == 9 || theMonth == 11) && theDay == 31 ) {
  alert("输入有误,请重新输入");
  return ;
}
Javascript 相关文章推荐
js小技巧--自动隐藏红叉叉
Aug 13 Javascript
JS实现一键回顶功能示例代码
Oct 28 Javascript
javascript鼠标滑动评分控件完整实例
May 13 Javascript
js实现input密码框提示信息的方法(附html5实现方法)
Jan 14 Javascript
探讨JavaScript标签位置的存放与功能有无关系
Jan 15 Javascript
微信小程序实战之上拉(分页加载)效果(2)
Apr 17 Javascript
移动端效果之Swiper详解
Oct 09 Javascript
node.js中TCP Socket多进程间的消息推送示例详解
Jul 10 Javascript
javascript json字符串到json对象转义问题
Jan 22 Javascript
layui.use模块外部使用其内部定义的js封装函数方法
Sep 16 Javascript
Vue+Element ui 根据后台返回数据设置动态表头操作
Sep 21 Javascript
uni-app 微信小程序授权登录的实现步骤
Feb 18 Javascript
javascript将相对路径转绝对路径示例
Mar 14 #Javascript
Node.js和PHP根据ip获取地理位置的方法
Mar 14 #Javascript
弹出窗口并且此窗口带有半透明的遮罩层效果
Mar 13 #Javascript
javascript回车完美实现tab切换功能
Mar 13 #Javascript
javasciprt下jquery函数$.post执行无响应的解决方法
Mar 13 #Javascript
JQuery中extend使用介绍
Mar 13 #Javascript
js中用window.open()打开多个窗口的name问题
Mar 13 #Javascript
You might like
简体中文转换为繁体中文的PHP函数
2006/10/09 PHP
php结合curl实现多线程抓取
2015/07/09 PHP
学习php设计模式 php实现桥梁模式(bridge)
2015/12/07 PHP
Symfony2学习笔记之模板用法详解
2016/03/17 PHP
PHP实现生成带背景的图形验证码功能
2016/10/03 PHP
php实现的生成排列算法示例
2019/07/25 PHP
Expandable &quot;Detail&quot; Table Rows
2007/08/29 Javascript
js 可拖动列表实现代码
2011/12/13 Javascript
关于JavaScript中原型继承中的一点思考
2012/07/25 Javascript
无缝滚动改进版支持上下左右滚动(封装成函数)
2012/12/04 Javascript
jsonp原理及使用
2013/10/28 Javascript
SuperSlide2实现图片滚动特效
2014/06/20 Javascript
jQuery如何防止这种冒泡事件发生
2015/02/27 Javascript
jQuery获取标签文本内容和html内容的方法
2015/03/27 Javascript
jquery 无限极下拉菜单的简单实例(精简浓缩版)
2016/05/31 Javascript
JS中如何实现Laravel的route函数详解
2017/02/12 Javascript
原生JavaScript实现Tooltip浮动提示框特效
2017/03/07 Javascript
浅析JS中回调函数及用法
2018/07/25 Javascript
vue项目配置使用flow类型检查的步骤
2020/03/18 Javascript
JavaScript WeakMap使用详解
2021/02/05 Javascript
[02:05]2014DOTA2西雅图邀请赛 老队长全明星大猜想谁不服就按进显示器
2014/07/08 DOTA
用Python进行一些简单的自然语言处理的教程
2015/03/31 Python
pandas分别写入excel的不同sheet方法
2018/12/11 Python
Pycharm运行加载文本出现错误的解决方法
2019/06/27 Python
python中class的定义及使用教程
2019/09/18 Python
Python带参数的装饰器运行原理解析
2020/06/09 Python
Tensorflow使用Anaconda、pycharm安装记录
2020/07/29 Python
python语音识别指南终极版(有这一篇足矣)
2020/09/09 Python
canvas粒子动画背景的实现示例
2018/09/03 HTML / CSS
Booking.com荷兰:全球酒店网上预订
2017/08/22 全球购物
90后毕业生的求职信范文
2013/09/21 职场文书
不拖欠农民工工资承诺书
2014/03/31 职场文书
《梅花魂》教学反思
2014/04/30 职场文书
2014年小学少先队工作总结
2014/12/18 职场文书
学雷锋主题班会教案
2015/08/13 职场文书
详解Laravel制作API接口
2021/05/31 PHP