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 相关文章推荐
JavaScript与函数式编程解释
Apr 27 Javascript
jquery 可排列的表实现代码
Nov 13 Javascript
js不完美解决click和dblclick事件冲突问题
Jul 16 Javascript
jQuery 选择器项目实例分析及实现代码
Dec 28 Javascript
javascript返回顶部效果(自写代码)
Jan 06 Javascript
从jquery的过滤器.filter()方法想到的
Sep 29 Javascript
浅析JavaScript中的同名标识符优先级
Dec 06 Javascript
display和visibility的区别示例介绍
Feb 26 Javascript
js计算时间差代码【包括计算,天,时,分,秒】
Apr 26 Javascript
浅谈angularJS中的事件
Jul 12 Javascript
jquery siblings获取同辈元素用法实例分析
Jul 25 Javascript
微信小程序 wx:for 与 wx:for-items 与 wx:key的正确用法
May 19 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遍历某个目录下的所有文件和子文件夹的实现代码
2013/06/28 PHP
PHP实现适用于自定义的验证码类
2016/06/15 PHP
Laravel使用消息队列需要注意的一些问题
2017/12/13 PHP
PHP PDOStatement::errorInfo讲解
2019/01/31 PHP
Prototype 1.5.0_rc1 及 Prototype 1.5.0 Pre0小抄本
2006/09/22 Javascript
FF IE兼容性的修改小结
2009/09/02 Javascript
jQuery 使用手册(三)
2009/09/23 Javascript
Js+Flash实现访问剪切板操作
2012/11/20 Javascript
『jQuery』取指定url格式及分割函数应用
2013/04/22 Javascript
JS 添加千分位与去掉千分位的示例
2013/07/11 Javascript
JS文本框追加多个下拉框的值的简单实例
2013/07/12 Javascript
不提示直接关闭网页窗口的JS示例代码
2013/12/17 Javascript
Linux下编译安装php libevent扩展实例
2015/02/14 Javascript
详解Bootstrap按钮
2016/01/04 Javascript
JS实现屏蔽网页右键复制及ctrl+c复制的方法【2种方法】
2016/09/04 Javascript
Angular2下使用pdf插件的方法详解
2017/04/29 Javascript
bootstrap Table插件使用demo
2017/08/07 Javascript
angular5 httpclient的示例实战
2018/03/12 Javascript
js 将线性数据转为树形的示例代码
2019/05/28 Javascript
webpack自动打包和热更新的实现方法
2019/06/24 Javascript
Python松散正则表达式用法分析
2016/04/29 Python
Python画图学习入门教程
2016/07/01 Python
简单了解OpenCV是个什么东西
2017/11/10 Python
Django配置celery(非djcelery)执行异步任务和定时任务
2018/07/16 Python
使用tensorflow实现线性回归
2018/09/08 Python
python程序快速缩进多行代码方法总结
2019/06/23 Python
Pandas —— resample()重采样和asfreq()频度转换方式
2020/02/26 Python
Python 高效编程技巧分享
2020/09/10 Python
python对输出的奇数偶数排序实例代码
2020/12/04 Python
CSS3 选择器 属性选择器介绍
2012/01/21 HTML / CSS
HTML5 canvas标签实现刮刮卡效果
2015/04/24 HTML / CSS
蔻驰法国官网:COACH法国
2018/11/14 全球购物
经济系大学生求职信
2013/10/01 职场文书
企业安全生产承诺书
2014/05/22 职场文书
教师思想工作总结2015
2015/05/13 职场文书
经典《舰娘》游改全新动画预告 预定11月开播
2022/04/01 日漫