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用图作提交按钮或超连接
Mar 26 Javascript
JavaScript 对象成员的可见性说明
Oct 16 Javascript
js中匿名函数的创建与调用方法分析
Dec 19 Javascript
jquery搜索框效果实现方法
Jan 16 Javascript
JavaScript中几种排序算法的简单实现
Jul 29 Javascript
分享一道关于闭包、bind和this的面试题
Feb 20 Javascript
form表单数据封装成json格式并提交给服务器的实现方法
Dec 14 Javascript
微信小程序实现倒计时调用相机自动拍照功能
Jun 10 Javascript
详解vue-cli下ESlint 配置说明
Sep 03 Javascript
使用 electron 实现类似新版 QQ 的登录界面效果(阴影、背景动画、窗体3D翻转)
Oct 23 Javascript
解决layui 三级联动下拉框更新时回显的问题
Sep 03 Javascript
解决vue scoped scss 无效的问题
Sep 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
输出控制类
2006/10/09 PHP
PHP中调用ASP.NET的WebService的代码
2011/04/22 PHP
php读取EXCEL文件 php excelreader读取excel文件
2012/12/06 PHP
PHP 动态生成静态HTML页面示例代码
2014/01/15 PHP
从阿里妈妈发现的几个不错的表单验证函数
2007/09/21 Javascript
jQuery 表单验证扩展代码(二)
2010/10/20 Javascript
Fixie.js 自动填充内容的插件
2012/06/28 Javascript
实例说明为什么不要行内使用javascript
2014/04/18 Javascript
jQuery实现当前页面标签高亮显示的方法
2015/03/10 Javascript
jquery.Jcrop结合JAVA后台实现图片裁剪上传实例
2016/11/05 Javascript
canvas实现图像放大镜
2017/02/06 Javascript
js实现首屏延迟加载实现方法 js实现多屏单张图片延迟加载效果
2017/07/17 Javascript
vue.js  父向子组件传参的实例代码
2017/10/29 Javascript
echarts学习笔记之箱线图的分析与绘制详解
2017/11/22 Javascript
微信小程序实现图片懒加载的示例代码
2017/12/13 Javascript
详解小程序如何避免多次点击,重复触发事件
2019/04/08 Javascript
微信小程序实现的一键复制功能示例
2019/04/24 Javascript
从零撸一个pc端vue的ui组件库( 计数器组件 )
2019/08/08 Javascript
Vue-cli3生成的Vue项目加载Mxgraph方法示例
2020/05/31 Javascript
[02:17]TI4西雅图DOTA2前线报道 啸天mik夫妻档解说
2014/07/08 DOTA
关于Python如何避免循环导入问题详解
2017/09/14 Python
Python创建普通菜单示例【基于win32ui模块】
2018/05/09 Python
win7下python3.6安装配置方法图文教程
2018/07/31 Python
python实现简单学生信息管理系统
2020/04/09 Python
jupyter notebook插入本地图片的实现
2020/04/13 Python
keras 多gpu并行运行案例
2020/06/10 Python
Python基于callable函数检测对象是否可被调用
2020/10/16 Python
英国Boots旗下太阳镜网站:Boots Designer Sunglasses
2018/07/07 全球购物
Glamest意大利:女性在线奢侈品零售店
2019/04/28 全球购物
国贸专业个人求职信范文
2014/01/08 职场文书
幼儿园大班评语大全
2014/04/17 职场文书
学习优秀共产党员先进事迹思想报告
2014/09/17 职场文书
镇政府副镇长群众路线专题民主生活会对照检查材料
2014/09/19 职场文书
服务承诺书
2015/01/19 职场文书
2015年学校政教处工作总结
2015/05/26 职场文书
SpringBoot整合RabbitMQ的5种模式实战
2021/08/02 Java/Android