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 相关文章推荐
硬盘浏览程序,保存成网页格式便可使用
Dec 03 Javascript
css值转换成数值请抛弃parseInt
Oct 24 Javascript
JS delegate与live浅析
Dec 21 Javascript
影响jQuery使用的14个方面
Sep 01 Javascript
javascript实现checkBox的全选,反选与赋值
Mar 12 Javascript
MVVM模式中ViewModel和View、Model有什么区别?
Jun 19 Javascript
自己动手写的javascript前端等待控件
Oct 30 Javascript
jQuery调用WebMethod(PageMethod) NET2.0的方法
Apr 15 Javascript
node.js实现回调的方法示例
Mar 01 Javascript
Vue.js实战之通过监听滚动事件实现动态锚点
Apr 04 Javascript
vue实现word,pdf文件的导出功能
Jul 31 Javascript
用JS实现一个简单的打砖块游戏
Dec 11 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
第三节 定义一个类 [3]
2006/10/09 PHP
解析crontab php自动运行的方法
2013/06/24 PHP
php实现转换html格式为文本格式的方法
2016/05/16 PHP
PHP添加PNG图片背景透明水印操作类定义与用法示例
2019/03/12 PHP
Javascript 中的类和闭包
2010/01/08 Javascript
ExtJs GridPanel简单的增删改实现代码
2010/08/26 Javascript
基于jQuery的message插件实现右下角弹出消息框
2011/01/11 Javascript
解析JavaScript中的标签语句
2013/06/19 Javascript
Javascript连接多个数组不用concat来解决
2014/03/24 Javascript
Html5的placeholder属性(IE兼容)实现代码
2014/08/30 Javascript
javascript转换静态图片,增加粒子动画效果
2015/05/28 Javascript
javascript使用闭包模拟对象的私有属性和方法
2016/10/05 Javascript
jQuery实现立体式数字滚动条增加效果
2016/12/21 Javascript
es6学习笔记之Async函数基本教程
2017/05/11 Javascript
Vue通过input筛选数据
2020/10/26 Javascript
Bootstrap实现的标签页内容切换显示效果示例
2017/05/25 Javascript
详解ElementUI之表单验证、数据绑定、路由跳转
2017/06/21 Javascript
Vue前后端不同端口的实现方法
2018/09/19 Javascript
解决layui动态加载复选框无法选中的问题
2019/09/20 Javascript
详解vue高级特性
2020/06/09 Javascript
Python实现计算文件夹下.h和.cpp文件的总行数
2015/04/23 Python
Pthon批量处理将pdb文件生成dssp文件
2015/06/21 Python
Centos Python2 升级到Python3的简单实现
2016/06/21 Python
将Python字符串生成PDF的实例代码详解
2019/05/17 Python
TensorFlow实现简单的CNN的方法
2019/07/18 Python
Python 捕获代码中所有异常的方法
2020/08/03 Python
详解python UDP 编程
2020/08/24 Python
如何用Java判断一个文件或目录是否存在
2012/11/19 面试题
销售主管的自我评价分享
2014/01/03 职场文书
业务部主管岗位职责
2014/01/29 职场文书
会计自荐信范文
2014/03/09 职场文书
新闻学专业求职信
2014/07/28 职场文书
2015羊年春节慰问信
2015/02/14 职场文书
酒店辞职书范文
2015/02/26 职场文书
终止劳动合同通知书
2015/04/16 职场文书
Redis入门基础常用操作命令整理
2022/06/01 Redis