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 相关文章推荐
070823更新的一个[消息提示框]组件 兼容ie7
Aug 29 Javascript
JavaScript Prototype对象
Jan 07 Javascript
HTML长文本截取含有HTML代码同样适用的两种方法
Jul 31 Javascript
jQuery的cookie插件实现保存用户登陆信息
Apr 15 Javascript
javascript的tab切换原理与效果实现方法
Jan 10 Javascript
Node.js开发之访问Redis数据库教程
Jan 14 Javascript
聊一聊JS中this的指向问题
Jun 17 Javascript
jQuery实现下拉框多选 jquery-multiselect 的实例代码
Jul 14 Javascript
JS与HTML结合实现流程进度展示条思路详解
Sep 03 Javascript
vue.js实现带日期星期的数字时钟功能示例
Aug 28 Javascript
VSCode launch.json配置详细教程
Jun 18 Javascript
解决vue加scoped后就无法修改vant的UI组件的样式问题
Sep 07 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
真正根据utf8编码的规律来进行截取字符串的函数(utf8版sub_str )
2012/10/24 PHP
Laravel 5 框架入门(三)
2015/04/09 PHP
从性能方面考虑PHP下载远程文件的3种方法
2015/12/29 PHP
PHP cURL获取微信公众号access_token的实例
2018/04/28 PHP
php统计数组不同元素的个数的实例方法
2019/09/26 PHP
JS 统计时间
2021/03/09 Javascript
JavaScript中“基本类型”之争小结
2013/01/03 Javascript
深入理解JavaScript系列(45):代码复用模式(避免篇)详解
2015/03/04 Javascript
JavaScript实现自动生成网页元素功能(按钮、文本等)
2015/11/21 Javascript
原生JavaScript实现瀑布流布局
2020/06/28 Javascript
详解用原生JavaScript实现jQuery的某些简单功能
2016/12/19 Javascript
JavaScript实现星级评分
2017/01/12 Javascript
js eval函数使用,js对象和字符串互转实例
2017/03/06 Javascript
使用 vue.js 构建大型单页应用
2018/02/10 Javascript
vue.js-div滚动条隐藏但有滚动效果的实现方法
2018/03/03 Javascript
JavaScript代码异常监控实现过程详解
2020/02/17 Javascript
JavaScript实现轮播图特效
2020/04/10 Javascript
element中table高度自适应的实现
2020/10/21 Javascript
[57:53]Secret vs Pain 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/20 DOTA
基于hashlib模块--加密(详解)
2017/06/21 Python
python中闭包Closure函数作为返回值的方法示例
2017/12/17 Python
用pandas中的DataFrame时选取行或列的方法
2018/07/11 Python
java中的控制结构(if,循环)详解
2019/06/26 Python
如何利用Python模拟GitHub登录详解
2019/07/15 Python
Python matplotlib绘制饼状图功能示例
2019/09/10 Python
python3 assert 断言的使用详解 (区别于python2)
2019/11/27 Python
Python 脚本的三种执行方式小结
2019/12/21 Python
Python偏函数Partial function使用方法实例详解
2020/06/17 Python
联想加拿大官方网站:Lenovo Canada
2018/04/05 全球购物
公关关系专员的自我评价分享
2013/11/20 职场文书
吸烟检讨书2000字
2014/02/13 职场文书
学雷锋标语
2014/06/25 职场文书
红色影片观后感
2015/06/18 职场文书
2015年高中生国庆节演讲稿
2015/07/30 职场文书
2016党员三严三实心得体会
2016/01/15 职场文书
创业项目大全(适合在家创业的项目)
2019/08/15 职场文书