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 相关文章推荐
点击广告后才能获得下载地址
Oct 26 Javascript
关于javascript中this关键字(翻译+自我理解)
Oct 20 Javascript
jQuery EasyUI API 中文文档 - PropertyGrid属性表格
Nov 18 Javascript
图片在浏览器中底部对齐 解决方法之一
Nov 30 Javascript
jquery实现的一个导航滚动效果具体代码
May 27 Javascript
jquery自定义下拉列表示例
Apr 25 Javascript
如何编写高质量JS代码
Dec 28 Javascript
jQuery扁平化风格下拉框美化插件FancySelect使用指南
Feb 10 Javascript
实例详解angularjs和ajax的结合使用
Oct 22 Javascript
详解Vue中watch对象内属性的方法
Feb 01 Javascript
jQuery 常用特效实例小结【显示与隐藏、淡入淡出、滑动、动画等】
May 19 jQuery
vue 通过base64实现图片下载功能
Dec 19 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
PHP has encountered an Access Violation at 7C94BD02解决方法
2009/08/24 PHP
PHP实现手机归属地查询API接口实现代码
2012/08/27 PHP
基于php使用memcache存储session的详解
2013/06/25 PHP
学习php设计模式 php实现装饰器模式(decorator)
2015/12/07 PHP
PHP抓取淘宝商品的用户晒单评论+图片+搜索商品列表实例
2016/04/14 PHP
PHP内存缓存功能memcached示例
2016/10/19 PHP
详解PHP防止盗链防止迅雷下载的方法
2017/04/26 PHP
用JTrackBar实现的模拟苹果风格的滚动条
2007/08/06 Javascript
jQuery ctrl+Enter shift+Enter实现代码
2010/02/07 Javascript
基于jquery的关于动态创建DOM元素的问题
2010/12/24 Javascript
EXTJS记事本 当CompositeField遇上RowEditor
2011/07/31 Javascript
利用jquery包将字符串生成二维码图片
2013/09/12 Javascript
javascript禁止访客复制网页内容的实现代码
2015/08/05 Javascript
JS字符串的切分用法实例
2016/02/22 Javascript
js 作用域和变量详解
2017/02/16 Javascript
微信小程序scroll-view实现横向滚动和上拉加载示例
2017/03/06 Javascript
超简单的Vue.js环境搭建教程
2017/03/17 Javascript
KOA+egg.js集成kafka消息队列的示例
2018/11/09 Javascript
React+Antd+Redux实现待办事件的方法
2019/03/14 Javascript
vue 弹窗时 监听手机返回键关闭弹窗功能(页面不跳转)
2019/05/10 Javascript
解决vue elementUI中table里数字、字母、中文混合排序问题
2020/01/07 Javascript
JavaScript队列结构Queue实现过程解析
2020/03/07 Javascript
vue-cli3配置favicon.ico和title的流程
2020/10/27 Javascript
[01:00:10]完美世界DOTA2联赛PWL S2 FTD vs Inki 第二场 11.21
2020/11/24 DOTA
详解Python GUI编程之PyQt5入门到实战
2020/12/10 Python
发现两个有趣的CSS3动画效果
2013/08/14 HTML / CSS
浅析css3中matrix函数的使用
2016/06/06 HTML / CSS
Kathmandu英国网站:新西兰户外运动品牌
2017/03/27 全球购物
欧洲最大的化妆品连锁公司:Douglas道格拉斯
2017/05/06 全球购物
美国饼干礼物和美食甜点购买网站:Cheryl’s
2020/05/28 全球购物
NFL官方在线商店:NFLShop
2020/07/29 全球购物
优秀教师先进事迹
2014/01/22 职场文书
公司新年寄语
2014/04/04 职场文书
差生评语大全
2014/05/04 职场文书
党员干部民主生活会议批评与自我批评材料
2014/09/20 职场文书
vue使用element-ui按需引入
2022/05/20 Vue.js