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 相关文章推荐
html数组字符串拼接的最快方法
Sep 16 Javascript
jquery 全局AJAX事件使用代码
Nov 05 Javascript
Extjs4 类的定义和扩展实例
Jun 28 Javascript
JavaScript字符串对象substring方法入门实例(用于截取字符串)
Oct 17 Javascript
js获取时间并实现字符串和时间戳之间的转换
Jan 05 Javascript
js老生常谈之this,constructor ,prototype全面解析
Apr 05 Javascript
jQuery给div,Span, a ,button, radio 赋值与取值
Jun 24 Javascript
js时间戳格式化成日期格式的多种方法介绍
Feb 16 Javascript
JavaScript实现前端分页控件
Apr 19 Javascript
vue技术分享之你可能不知道的7个秘密
Apr 09 Javascript
vue 做移动端微信公众号采坑经验记录
Apr 26 Javascript
vue ant design 封装弹窗表单的使用
Jun 01 Vue.js
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
md5 16位二进制与32位字符串相互转换示例
2013/12/30 PHP
php操作mysql数据库的基本类代码
2014/02/25 PHP
php找出指定范围内回文数且平方根也是回文数的方法
2015/03/23 PHP
js 数组实现一个类似ruby的迭代器
2009/10/27 Javascript
jQuery 添加/移除CSS类实现代码
2010/02/11 Javascript
Package.js  现代化的JavaScript项目make工具
2012/05/23 Javascript
apply和call方法定义及apply和call方法的区别
2015/11/15 Javascript
React组件之间的通信的实例代码
2017/06/27 Javascript
vue 点击按钮增加一行的方法
2018/09/07 Javascript
微信运维交互机器人的示例代码
2018/11/12 Javascript
微信小程序自定义组件实现环形进度条
2020/11/17 Javascript
JS代码触发事件代码实例
2020/01/02 Javascript
vue中keep-alive内置组件缓存的实例代码
2020/04/16 Javascript
使用Vant完成Dialog弹框案例
2020/11/11 Javascript
[03:06]3分钟带你回顾DOTA2完美盛典&完美大师赛
2017/12/06 DOTA
python self,cls,decorator的理解
2009/07/13 Python
Python3遍历目录树实现方法
2015/05/22 Python
Python缩进和冒号详解
2016/06/01 Python
Django rest framework工具包简单用法示例
2018/07/20 Python
pandas求两个表格不相交的集合方法
2018/12/08 Python
python开发游戏的前期准备
2019/05/05 Python
PyCharm-错误-找不到指定文件python.exe的解决方法
2019/07/01 Python
Python pip install之SSL异常处理操作
2020/09/03 Python
真正了解CSS3背景下的@font face规则
2017/05/04 HTML / CSS
什么是组件架构
2016/05/15 面试题
电子商务应届生求职信
2013/11/16 职场文书
高级编程求职信模板
2014/02/16 职场文书
勤俭节约倡议书
2014/04/14 职场文书
我们的节日春节活动方案
2014/08/22 职场文书
毕业横幅标语
2014/10/08 职场文书
辞职书格式样本
2015/02/26 职场文书
2016教师暑期培训学习心得体会
2016/01/09 职场文书
《草虫的村落》教学反思
2016/02/20 职场文书
党员公开承诺书2016
2016/03/24 职场文书
uniapp开发小程序的经验总结
2021/04/08 Javascript
使用react+redux实现计数器功能及遇到问题
2021/06/02 Javascript