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的Alert消息框插件使用介绍
Oct 09 Javascript
js 浏览器事件介绍
Mar 30 Javascript
js 弹出新页面避免被浏览器、ad拦截的一种新方法
Apr 30 Javascript
基于javascript实现tab选项卡切换特效调试笔记
Mar 30 Javascript
js中数组的常用方法小结
Dec 30 Javascript
详解Puppeteer 入门教程
May 09 Javascript
JS获取月的第几周和年的第几周实例代码
Dec 05 Javascript
vue使用高德地图根据坐标定位点的实现代码
Aug 22 Javascript
javascript删除数组元素的七个方法示例
Sep 09 Javascript
解决layui-open关闭自身窗口的问题
Sep 10 Javascript
js实现图片3D轮播效果
Sep 21 Javascript
JavaScript原型继承和原型链原理详解
Feb 04 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检测文件编码的方法示例
2014/04/25 PHP
php bootstrap实现简单登录
2016/03/08 PHP
使用JavaScript创建新样式表和新样式规则
2016/06/14 PHP
yii2 开发api接口时优雅的处理全局异常的方法
2019/05/14 PHP
JQuery 技巧和窍门整理(8个)
2010/04/22 Javascript
再论Javascript的类继承
2011/03/05 Javascript
JavaScript实现的简单幂函数实例
2015/04/17 Javascript
详解jQuery中ajax.load()方法
2017/01/25 Javascript
Bootstrap面板学习使用
2017/02/09 Javascript
在js代码拼接dom对象到页面上去的模板总结(必看)
2017/02/14 Javascript
NodeJS仿WebApi路由示例
2017/02/28 NodeJs
详解webpack 入门总结和实践(按需异步加载,css单独打包,生成多个入口文件)
2017/06/20 Javascript
基于vue2.0实现简单轮播图
2017/11/27 Javascript
JavaScript 对引擎、运行时、调用堆栈的概述理解
2018/10/22 Javascript
layui实现根据table数据判断按钮显示情况的方法
2019/09/26 Javascript
JavaScript实现与web通信的方法详解
2020/08/07 Javascript
[45:59]完美世界DOTA2联赛PWL S2 FTD vs GXR 第二场 11.22
2020/11/24 DOTA
在Python中操作字典之clear()方法的使用
2015/05/21 Python
浅谈Python的文件类型
2016/05/30 Python
python 循环遍历字典元素的简单方法
2016/09/11 Python
python模块之time模块(实例讲解)
2017/09/13 Python
Python中scatter函数参数及用法详解
2017/11/08 Python
安装python3的时候就是输入python3死活没有反应的解决方法
2018/01/24 Python
python版本的仿windows计划任务工具
2018/04/30 Python
python进行OpenCV实战之画图(直线、矩形、圆形)
2020/08/27 Python
Python 使用xlwt模块将多行多列数据循环写入excel文档的操作
2020/11/10 Python
澳大利亚在线划船、露营和钓鱼商店:BCF Australia
2020/03/22 全球购物
安全员岗位职责
2013/11/11 职场文书
音乐节策划方案
2014/06/09 职场文书
幼儿教师年度个人总结
2015/02/05 职场文书
大班下学期个人总结
2015/02/13 职场文书
幼师辞职信范文
2015/02/27 职场文书
初婚未育证明样本
2015/06/18 职场文书
创业计划书之干洗店
2019/09/10 职场文书
Python中的np.argmin()和np.argmax()函数用法
2021/06/02 Python