平年:

  2月-->28天

  4,6,9,11月-->30天

  1,3,5,7,8,10,12月-->31天

闰年:

  2月-->29天

  4,6,9,11月-->30天

  1,3,5,7,8,10,12月-->31天

闰年的计算方式:

  1、年份/100

  2、如果 年份/100有余数 , 年份/4 没有余数   是闰年

       如果 年份/100没余数 , 年份/400 没有余数   是闰年

function year(years){
return years%100 == 0 ? (years%400 == 0 ? 1 : 0) : (years%4 == 0 ? 1 : 0);//判断闰年;如果是闰年返回1,平年返回0
}
function day(mouths, fn){//fn --> year()函数
if(fn == 1 && mouths == 2){
return 29;
}else{
if(mouths == 2){
return 28;
}else if(mouths == 4 || 6 || 7 || 9 || 11){//4 6 7 9 11 -> 30
return 30;
}else{
return 31;
}
}
}

下面是全部代码:

html:

<div id="datebox"></div><!--选完日期后填入的地方-->
<div style="display: flex;">
<div class="years"> </div>
<div class="mouth" style="display: none"> </div>
<div class="day" style="display: none"> </div>
</div>

css:

<style>
.years,.mouth,.day{
width: 90px;
height: 200px;
overflow-y: scroll;
}
</style>

javascript:

var startYear = 1918;
var years = document.getElementsByClassName('years')[0];
var mouth = document.getElementsByClassName('mouth')[0];
var days = document.getElementsByClassName('day')[0];
for(var k = startYear; k <= 2017; k++){
var node = createNode(k);
years.appendChild(node);
}
for(var m = 1; m <= 12; m++){
var node = createNode(m);
mouth.appendChild(node);
}
function createDay(option){
for(var i = 1; i <= option; i++){
var node = createNode(i);
days.appendChild(node);
}
}
function createNode (num){
var node = document.createElement('a');
node.innerHTML = num;
node.style.display = 'block';
return node;
}
function year(years){
return years%100 == 0 ? (years%400 == 0 ? 1 : 0) : (years%4 == 0 ? 1 : 0);
}
function day(mouths, fn){
if(fn == 1 && mouths == 2){
return 29;
}else{
if(mouths == 2){
return 28;
}else if(mouths == 4 || 6 || 7 || 9 || 11){//4 6 7 9 11 -> 30
return 30;
}else{
return 31;
}
}
}
years.addEventListener('click', function(e){
var temps = [];
temps.push(e.target.innerHTML);
mouth.style.display = 'block';
mouth.addEventListener('click', function(e){
temps.push(e.target.innerHTML);
days.style.display = 'block';
createDay(day(temps[1], year(temps[2])));
days.addEventListener('click', function(e){
temps.push(e.target.innerHTML);
var dates = temps[0] + '年' + temps[1] + '月' + temps[2] + '日';
datebox.innerHTML = dates;
this.style.display = 'none';
mouth.style.display = 'none';
years.style.display = 'none';
})
})
})

最新文章

  1. GUI - GEB UI库
  2. CCEA OCX
  3. NPM私有服务器架设 FOR CentOS
  4. asp.net mvc get controller name and action name
  5. 使用expect实现批量操作的自动化
  6. Others in life
  7. 【译】Flink + Kafka 0.11端到端精确一次处理语义的实现
  8. 前端面试题整理—Webpack篇
  9. 简易机器学习代码(LR,Kmeans,NN,RNN)
  10. 一个CLR20r3 错误解决。
  11. JS基础题
  12. PAT A1108 Finding Average (20 分)——字符串,字符串转数字
  13. a simple example for spring AOP
  14. jquery 和 FormData 最简单图片异步上传
  15. Spring Boot 系统要求
  16. eclipse—Maven项目打包成exe
  17. [吴恩达机器学习笔记]12支持向量机1从逻辑回归到SVM/SVM的损失函数
  18. IO模型《七》selectors模块
  19. java soa接口测试,可以使用http协议调用
  20. LeetCode解题报告—— Trapping Rain Water

热门文章

  1. ubuntu12.04可用源
  2. Brainman(规律题)【数学思想】
  3. Shell编译安装nginx
  4. foreach 集合又抛经典异常了,这次一定要刨根问底
  5. Linux下自己和自己用各种方法进行文件的上传下载
  6. 安装allure测试报告
  7. Win10 1903小白搭建Redis
  8. python-判断、循环、列表、字典
  9. [ C++ ] set_new_handler解析
  10. JavaWeb网上图书商城完整项目--day02-12.激活功能各层实现