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. a标签伪类选择器+过度模块

    a标签的伪类选择器 1.什么是a标签的伪类选择器?a标签的伪类选择器是专门用来修改a标签不同状态的样式的. 2.格式: 1):link 修改从未被访问过状态下的样式. 2):visited 修改被访问 ...

  2. 团队作业-Beta冲刺(3/4)

    队名:软工9组 组长博客:https://www.cnblogs.com/cmlei/ 作业博客:https://edu.cnblogs.com/campus/fzu/SoftwareEngineer ...

  3. Python实例100个(基于最新Python3.7版本)

    Python3 100例 原题地址:   http://www.runoob.com/python/python-100-examples.html    git地址:    https://gith ...

  4. 【Linux】数据流重定向

    数据流重定向(redirect)就是将某个命令执行后应该要出现在屏幕上的数据,给它传输到其他的地方,例如文件或设备(打印机之类的).这玩意在Linux的命令行模式下很重要,尤其是想要将某些数据存储下来 ...

  5. Qt编写气体安全管理系统26-组态设计

    一.前言 组态设计是应一个客户要求新增加进去的,设计理念就是在提供一个组态设计的初级功能,比如读取自定义控件动态库,加载所有的控件放到控件栏(有点类似qtcreator的控件栏)用户拖曳对应的控件到画 ...

  6. 必备Mysql命令

    文章来源:https://macrozheng.github.io/mall-learning/#/reference/mysql 开发者必备Mysql命令 开发者必备Mysql常用命令,涵盖了数据定 ...

  7. [LeetCode] 278. First Bad Version 第一个坏版本

    You are a product manager and currently leading a team to develop a new product. Unfortunately, the ...

  8. [LeetCode] 531. Lonely Pixel I 孤独的像素 I

    Given a picture consisting of black and white pixels, find the number of black lonely pixels. The pi ...

  9. Java获取执行进程的dump文件及获取Java stack

    转发自https://blog.csdn.net/MCC_MCC_MCC/article/details/80623156 1.Windows/Linux环境下查看Java进程ID方法 使用Java自 ...

  10. consul异地多数据中心以及集群部署方案

    consul异地多数据中心以及集群部署方案目的实现consul 异地多数据中心环境部署,使得一个数据中心的服务可以从另一个数据中心的consul获取已注册的服务地址 环境准备两台 linux服务器,外 ...