0

0

js实现日历可获得指定日期周数及星期几示例分享

高洛峰

高洛峰

发布时间:2017-02-06 10:47:30

|

1669人浏览过

|

来源于php中文网

原创

应为要有交互,选择了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()]);
}

调试过程中遇到了许多意外的错误,如类型的不匹配带来的计算错误,如数字的舍入问题;
在队友的协助下,他负责审核和协助抓虫子,我负责实施和编码;
在最后一个环节,对输入值的测试中,我们很好的相互协助,分析不同的输入情况,涵盖了各种可能的意外,很快的完成了功能的完善;
下面是对输入值的判断是否允许的代码 :

科大讯飞-AI虚拟主播
科大讯飞-AI虚拟主播

科大讯飞推出的移动互联网智能交互平台,为开发者免费提供:涵盖语音能力增强型SDK,一站式人机智能语音交互解决方案,专业全面的移动应用分析;

下载
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 ;
}

更多js实现日历可获得指定日期周数及星期几示例分享相关文章请关注PHP中文网!

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
java连接字符串方法汇总
java连接字符串方法汇总

本专题整合了java连接字符串教程合集,阅读专题下面的文章了解更多详细操作。

3

2026.02.05

java中fail含义
java中fail含义

本专题整合了java中fail的含义、作用相关内容,阅读专题下面的文章了解更多详细内容。

6

2026.02.05

控制反转和依赖注入区别
控制反转和依赖注入区别

本专题整合了控制反转和依赖注入区别、解释、实现方法相关内容。阅读专题下面的文章了解更多详细教程。

6

2026.02.05

钉钉脑图插图教程合集
钉钉脑图插图教程合集

本专题整合了钉钉脑图怎么插入图片、钉钉脑图怎么用相关教程,阅读专题下面的文章了解更多详细内容。

8

2026.02.05

python截取字符串方法汇总
python截取字符串方法汇总

本专题整合了python截取字符串方法相关合集,阅读专题下面的文章了解更多详细内容。

2

2026.02.05

Java截取字符串方法合集
Java截取字符串方法合集

本专题整合了Java截取字符串方法汇总,阅读专题下面的文章了解更多详细操作教程。

1

2026.02.05

java 抽象方法
java 抽象方法

本专题整合了java抽象方法定义、作用教程等内容,阅读专题下面的文章了解更多详细内容。

2

2026.02.05

Eclipse创建jsp文件教程合集
Eclipse创建jsp文件教程合集

本专题整合了Eclipse创建jsp文件、创建jsp项目等等内容,阅读专题下面的文章了解更多详细教程。

18

2026.02.05

java 字符串转数字
java 字符串转数字

本专题整合了java如何字符串转数字相关内容,阅读专题下面的文章了解更多详细教程。

3

2026.02.05

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
WEB前端教程【HTML5+CSS3+JS】
WEB前端教程【HTML5+CSS3+JS】

共101课时 | 8.8万人学习

第二期_大前端线上班
第二期_大前端线上班

共345课时 | 47.9万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号