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中的bind绑定事件与文本框改变事件的临时解决方法
Aug 13 Javascript
JQuery文本框高亮显示插件代码
Apr 02 Javascript
由JavaScript中call()方法引发的对面向对象继承机制call的思考
Sep 12 Javascript
JS的replace方法详细介绍
Nov 09 Javascript
仿百度输入框智能提示的js代码
Aug 22 Javascript
javascript的动态加载、缓存、更新以及复用(一)
Jun 09 Javascript
JavaScript的面向对象编程基础
Aug 13 Javascript
jquery实现表格隔行换色效果
Nov 19 Javascript
最实用的jQuery分页插件
Oct 09 Javascript
JS常见算法详解
Feb 28 Javascript
Js利用console计算代码运行时间的方法示例
Sep 24 Javascript
jQuery实现二级导航菜单的示例
Sep 30 jQuery
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
GBK的页面输出JSON格式的php函数
2010/02/16 PHP
php 获取本机外网/公网IP的代码
2010/05/09 PHP
ThinkPHP2.x防范XSS跨站攻击的方法
2015/09/25 PHP
php使用gd2绘制基本图形示例(直线、圆、正方形)
2017/02/15 PHP
Yii2中添加全局函数的方法分析
2017/05/04 PHP
JAVASCRIPT对象及属性
2007/02/13 Javascript
dojo学习第一天 Tab选项卡 实现
2011/08/28 Javascript
JS随机生成不重复数据的实例方法
2013/07/17 Javascript
向左滚动文字 js代码效果
2013/08/17 Javascript
node.js解决获取图片真实文件类型的问题
2014/12/20 Javascript
BootStrap glyphicons 字体图标实现方法
2016/05/01 Javascript
Ajax使用原生态JS验证用户名是否存在
2020/05/26 Javascript
Vue.js动态添加、删除选题的实例代码
2016/09/30 Javascript
jQuery插件HighCharts实现的2D回归直线散点效果示例【附demo源码下载】
2017/03/09 Javascript
ES6教程之for循环和Map,Set用法分析
2017/04/10 Javascript
npm国内镜像 安装失败的几种解决方案
2017/06/04 Javascript
常用的9个JavaScript图表库详解
2017/12/19 Javascript
详解jQuery获取特殊属性的值以及设置内容
2018/11/14 jQuery
微信小程序MUI侧滑导航菜单示例(Popup弹出式,左侧不动,右侧滑动)
2019/01/23 Javascript
从0到1搭建element后台框架优化篇(打包优化)
2019/05/12 Javascript
解决Vue @submit 提交后不刷新页面问题
2020/07/18 Javascript
学习python (1)
2006/10/31 Python
Python通过websocket与js客户端通信示例分析
2014/06/25 Python
对Tensorflow中的矩阵运算函数详解
2018/07/27 Python
Pandas之MultiIndex对象的示例详解
2019/06/25 Python
pandas和spark dataframe互相转换实例详解
2020/02/18 Python
python 实现在无序数组中找到中位数方法
2020/03/03 Python
利用python对excel中一列的时间数据更改格式操作
2020/07/14 Python
CSS3中的clip-path使用攻略
2015/08/03 HTML / CSS
使用HTML5 Canvas绘制直线或折线等线条的方法讲解
2016/03/14 HTML / CSS
Bose法国官网:购买耳机、扬声器、家庭影院、专业音响
2017/12/21 全球购物
一年级小学生评语大全
2014/12/25 职场文书
php 获取音视频时长,PHP 利用getid3 获取音频文件时长等数据
2021/04/01 PHP
Python数据分析之pandas读取数据
2021/06/02 Python
使用qt quick-ListView仿微信好友列表和聊天列表的示例代码
2021/06/13 Python
spring cloud eureka 服务启动失败的原因分析及解决方法
2022/03/17 Java/Android