const rs = require("readline-sync");
// 根据用户输入的年月日输出第几天
// 欢迎
console.log("欢迎来到查询系统");
// 定义变量得到用户输入的年月日。
let year, month, date;
// 得到输入的年份
console.log("请输入你要查询的年份(2000-3000年):");
while (true) {
year = rs.question() - 0;
if (year >= 2000 && year <= 3000) {
break;
} else {
console.log("输入错误请重新输入(只能查询2000-3000年):");
continue;
}
}
// 得到月份
console.log("请输入你要查询的月份(1-12月):");
while (true) {
month = rs.question() - 0;
if (month >= 1 && month <= 12) {
break;
} else {
console.log("输入错误请重新输入(只能查询1-12月):");
continue;
}
}
// 得到日期
console.log("请输入你要查询的日期:");
// 判断小月日期是否输入正确
if (month == 4 || month == 6 || month == 9 || month == 11) {
while (true) {
date = rs.question() - 0;
if (date >= 1 && date <= 30) {
break;
} else {
console.log("输入错误请重新输入(只能查询1-30号):");
continue;
}
}
}
// 判断二月日期是否输入正确
else if (month == 2) {
date = rs.question() - 0;
if ((year % 4 == 0 && year % 100 == 0 || year % 400 == 0)) {
while (true) {
if (date >= 1 && date <= 29) {
break;
} else {
console.log("输入错误请重新输入(只能查询1-29号):");
continue;
}
}
} else {
while (true) {
if (date >= 1 && date <= 28) {
break;
} else {
console.log("输入错误请重新输入(只能查询1-28号):");
continue;
}
}
}
}
// 判断大月日期是否输入正确
else {
while (true) {
date = rs.question() - 0;
if (date >= 1 && date <= 31) {
break;
} else {
console.log("输入错误请重新输入(只能查询1-31号):");
continue;
}
}
}
// 计算输入的年月日是第几天
let monthTime = month - 1, sumDays = 0;
switch (monthTime) {
case 11: sumDays += 30;
case 10: sumDays += 31;
case 9: sumDays += 30;
case 8: sumDays += 31;
case 7: sumDays += 31;
case 6: sumDays += 30;
case 5: sumDays += 31;
case 4: sumDays += 30;
case 3: sumDays += 31;
case 2: if (year % 4 == 0 && year % 100 == 0 || year % 400 == 0) {
sumDays += 29;
} else {
sumDays += 28;
}
case 1: sumDays += 31;
case 0: sumDays += date;
}
// 输出结果
console.log(`您输入的${year}年${month}月${date}号是${year}年的第${sumDays}天。`);

js实现用户输入日期算出是今年的第几天的更多相关文章

  1. 验证Android用户输入日期

    如何验证用户输入的日期是有效还是无效? private Pattern pattern; private Matcher matcher; private static final String DA ...

  2. js处理用户输入的银行卡号实现四位一段,并且只能输入数字

    其中ABC是输入框的id.type="tel"可直接呼出数字键盘. <input type="tel" maxlength="24" ...

  3. SAP BDC 用户输入日期转系统日期格式: CONVERT_DATE_TO_EXTERNAL

    BDC中,日期输入格式不正确:可调用FM  CONVERT_DATE_TO_EXTERNAL DATA:l_bdcfield LIKE bdcdata-fval."BDC field val ...

  4. 每日学习心得:CustomValidator验证控件验证用户输入的字符长度、Linq 多字段分组统计、ASP.NET后台弹出confirm对话框,然后点击确定,执行一段代码

    2013-9-15 1.    CustomValidator验证控件验证用户输入的字符长度 在实际的开发中通常会遇到验证用户输入的字符长度的问题,通常的情况下,可以写一个js的脚本或者函数,在ASP ...

  5. js快捷输入日期

    点击这里查看效果http://keleyi.com/keleyi/phtml/jstexiao/10.htm 以下式代码: <!DOCTYPE html> <html> < ...

  6. Date() 及其 如何验证用户输入的日期是合法的

    1.var someDate = new Date(Date.parse("May 25, 2004"));   <=>  var someDate = new Dat ...

  7. js正则实现用户输入银行卡号的控制及格式化

    //js正则实现用户输入银行卡号的控制及格式化 <script language="javascript" type="text/javascript"& ...

  8. js打印保存用户输入的内容

    在用js打印局部页面时,遇到用户新输入的内容没能打印出来,经过观察,发现我采用的js打印方法是读取页面源代码,而用户输入的内容如果不将其写入到页面源代码中去,是打印不出来的,下面是我的解决方法: // ...

  9. JS+PHP实现用户输入数字后取得最大的值并显示为第几个

    目的:分清JS PHP的区别,拓宽思维 分析 1.利用JS的prompt输入用户想要输入的值. 2.利用HTML表单的text标签将输入的值传递给PHP处理文件 3.PHP进行数值判定,选出最大值和位 ...

随机推荐

  1. MySQL8.0报错Can't connect to MySQL server on 'localhost' (10061)的解决办法

    MySQL8.0报错Can't connect to MySQL server on 'localhost' (10061)的解决办法 事情的起因     今天课堂上要展示小组项目,需要用一个软件叫W ...

  2. Mybatis(上)

    Mybatis 一.MyBatis 简介 1. MyBatis作用 MyBatis 是支持定制化 SQL.存储过程以及高级映射的优秀的持久层框架. MyBatis 避免了几乎所有的 JDBC 代码和手 ...

  3. android -------- RSA加密解密算法

    RSA加密算法是一种非对称加密算法.在公开密钥加密和电子商业中RSA被广泛使用 RSA公开密钥密码体制.所谓的公开密钥密码体制就是使用不同的加密密钥与解密密钥,是一种“由已知加密密钥推导出解密密钥在计 ...

  4. 微信小程序开发——修改小程序原生checkbox、radio默认样式

    复选框: 闲话少说,这里直接介绍如何修改小程序提供的复选框的样式,如原生的是这样的: 需要的是这样的: 示例代码: /*复选框外框样式*/ checkbox .wx-checkbox-input { ...

  5. ROS tf监听编写

    博客转载自:https://www.ncnynl.com/archives/201702/1311.html ROS与C++入门教程-tf-编写tf listener(监听) 说明: 介绍如何使用tf ...

  6. [LeetCode] 260. Single Number III 单独数 III

    Given an array of numbers nums, in which exactly two elements appear only once and all the other ele ...

  7. socket支持ipv6

    转自:https://www.jianshu.com/p/9926b99a7fef 以前cocos2d-x的项目里都使用的是libwebsocket,如果想支持ipv6,只需要升级相应的库即可,现在有 ...

  8. Anaconda无法更新

    在安装完Anaconda,更新包时 C:\Users\Administrator>conda upgrade --all WARNING: The conda.compat module is ...

  9. javascript遍历对象的属性

    不同类型的循环 JavaScript 支持不同类型的循环: for - 多次遍历代码块 for/in - 遍历对象属性 while - 当指定条件为 true 时循环一段代码块 do/while - ...

  10. 【面试】IP数据报格式分析

    (除选项外的报头区总共20个字节) 1)版本:IPV4/IPV6 2)头长度:报头区长度,用于计算数据区的开始位置,比如头长度为6,代表报头区长度为6*4个字节,头长度的单位为4字节,所以报头区长度不 ...