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 相关文章推荐
详解强大的jQuery选择器之基本选择器、层次选择器
Feb 07 Javascript
jQuery实现表头固定效果的实例代码
May 24 Javascript
javascript实现图像循环明暗变化的方法
Feb 25 Javascript
JavaScript实现常用二级省市级联下拉列表的方法
Mar 25 Javascript
javascript html5移动端轻松实现文件上传
Mar 27 Javascript
JavaScript中的事件委托及好处
Jul 12 Javascript
etmvc+jQuery EasyUI+combobox多值操作实现角色授权实例
Nov 09 Javascript
Bootstrap实现带暂停功能的轮播组件(推荐)
Nov 25 Javascript
vue非父子组件通信问题及解决方法
Jun 11 Javascript
vue基础之data存储数据及v-for循环用法示例
Mar 08 Javascript
vue quill editor 使用富文本添加上传音频功能
Jan 14 Javascript
Angular5整合富文本编辑器TinyMCE的方法(汉化+上传)
May 26 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/11/25 PHP
php foreach 使用&amp;(与运算符)引用赋值要注意的问题
2010/02/16 PHP
PHP面向对象三大特点学习(充分理解抽象、封装、继承、多态)
2012/05/07 PHP
php中设置index.php文件为只读的方法
2013/02/06 PHP
php中使用sftp教程
2015/03/30 PHP
php隐藏实际地址的文件下载方法
2015/04/18 PHP
PHP生成和获取XML格式数据的方法
2016/03/04 PHP
[原创]php正则删除html代码中class样式属性的方法
2017/05/24 PHP
JQuery写动态树示例代码
2013/07/31 Javascript
js设置cookie过期当前时间减去一秒相当于立即过期
2014/09/04 Javascript
实例分析javascript中的call()和apply()方法
2014/11/28 Javascript
jQuery实现仿淘宝带有指示条的图片转动切换效果完整实例
2015/03/04 Javascript
浅谈javascript构造函数与实例化对象
2015/06/22 Javascript
Jquery结合HTML5实现文件上传
2015/06/25 Javascript
jQuery插件Validate实现自定义表单验证
2016/01/18 Javascript
js监听键盘事件的方法_原生和jquery的区别详解
2016/10/10 Javascript
localStorage的黑科技-js和css缓存机制
2017/02/06 Javascript
webpack-dev-server自动更新页面方法
2018/02/22 Javascript
trackingjs+websocket+百度人脸识别API实现人脸签到
2018/11/26 Javascript
vue实现购物车结算功能
2020/06/18 Javascript
Vue执行方法,方法获取data值,设置data值,方法传值操作
2020/08/05 Javascript
[02:05]2014DOTA2西雅图邀请赛 老队长全明星大猜想谁不服就按进显示器
2014/07/08 DOTA
用Python写的图片蜘蛛人代码
2012/08/27 Python
Python使用dis模块把Python反编译为字节码的用法详解
2016/06/14 Python
快速解决PyCharm无法引用matplotlib的问题
2018/05/24 Python
python时间序列按频率生成日期的方法
2019/05/14 Python
python如何保证输入键入数字的方法
2019/08/23 Python
PyCharm2019安装教程及其使用(图文教程)
2019/09/29 Python
django连接mysql数据库及建表操作实例详解
2019/12/10 Python
借助Paramiko通过Python实现linux远程登陆及sftp的操作
2020/03/16 Python
python解包概念及实例
2021/02/17 Python
信息系统专业个人求职信范文
2013/12/07 职场文书
工作态度不端正检讨书
2014/10/04 职场文书
实习工作表现评语
2014/12/31 职场文书
幼儿园见习总结
2015/06/23 职场文书
Java存储没有重复元素的数组
2022/04/29 Java/Android