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 防止刷新,后退,关闭
Aug 07 Javascript
suggestion开发小结以及对键盘事件的总结(针对中文输入法状态)
Dec 20 Javascript
JavaScript实现穷举排列(permutation)算法谜题解答
Dec 29 Javascript
JS+CSS实现经典的左侧竖向滑动菜单效果
Sep 23 Javascript
基于JavaScript实现移动端点击图片查看大图点击大图隐藏
Nov 04 Javascript
基于jquery编写的放大镜插件
Mar 23 Javascript
解决wx.onMenuShareTimeline出现的问题
Aug 16 Javascript
JavaScript实现反转字符串的方法详解
Apr 27 Javascript
jQuery与vue实现拖动验证码功能
Jan 30 jQuery
Vue 报错TypeError: this.$set is not a function 的解决方法
Dec 17 Javascript
JS二级菜单不同实现方法分析【4种方法】
Dec 21 Javascript
vue 详情跳转至列表页实现列表页缓存
Mar 27 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实现密保卡功能实现代码&amp;lt;打包下载直接运行&amp;gt;
2011/10/09 PHP
PHP执行批量mysql语句的解决方法
2013/05/02 PHP
利用PHP实现短域名互转
2013/07/05 PHP
PHP下载远程图片的几种方法总结
2017/04/07 PHP
thinkPHP实现的联动菜单功能详解
2017/05/05 PHP
PHP 返回数组后处理方法(开户成功后弹窗提示)
2017/07/03 PHP
PHP接口类(interface)的定义、特点和应用示例
2020/05/18 PHP
js中页面的重新加载(当前页面/上级页面)及frame或iframe元素引用介绍
2013/01/24 Javascript
JavaScript基础语法、dom操作树及document对象
2014/12/02 Javascript
解析JavaScript中的字符串类型与字符编码支持
2016/06/24 Javascript
JavaScript你不知道的一些数组方法
2017/08/18 Javascript
vue获取当前点击的元素并传值的实例
2018/03/09 Javascript
nodejs搭建本地服务器轻松解决跨域问题
2018/03/21 NodeJs
AngularJs的UI组件ui-Bootstrap之Tooltip和Popover
2018/07/13 Javascript
使用微信小程序开发弹出框应用实例详解
2018/10/18 Javascript
分享5个小技巧让你写出更好的 JavaScript 条件语句
2018/10/20 Javascript
python迭代器的使用方法实例
2013/11/21 Python
Python中实现三目运算的方法
2015/06/21 Python
解决python3 urllib中urlopen报错的问题
2017/03/25 Python
python保存文件方法小结
2018/07/27 Python
python 调用有道api接口的方法
2019/01/03 Python
python实现QQ邮箱/163邮箱的邮件发送
2019/01/22 Python
Django 自定义404 500等错误页面的实现
2020/03/08 Python
django使用F方法更新一个对象多个对象字段的实现
2020/03/28 Python
Python中无限循环需要什么条件
2020/05/27 Python
Python OpenCV实现测量图片物体宽度
2020/05/27 Python
纯HTML5+CSS3制作图片旋转
2016/01/12 HTML / CSS
与UNIX有关的几个名词
2015/09/17 面试题
中层竞聘演讲稿
2014/01/09 职场文书
大学四年的个人自我评价
2014/01/14 职场文书
军训 自我鉴定
2014/02/03 职场文书
党员三严三实心得体会
2014/10/13 职场文书
大学生上课迟到检讨书
2014/10/15 职场文书
骨干教师事迹材料
2014/12/17 职场文书
学雷锋活动简报
2015/07/20 职场文书
学前班教学反思
2016/02/24 职场文书