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. ubuntu之路——day17.1 卷积操作的意义、边缘检测的示例、filter与padding的关系、卷积步长

    感谢吴恩达老师的公开课,以下图片均来自于吴恩达老师的公开课课件 为什么要进行卷积操作? 我们通过前几天的实验已经做了64*64大小的猫图片的识别. 在普通的神经网络上我们在输入层上输入的数据X的维数为 ...

  2. Java_jdbc 基础笔记之十四 数据库连接(元数据)数据库信息及连接信息

    public class MetaDatatest { /** * DatabaseMetaData 是描述 数据库的元数据对象 可以由Connection得到 */ @Test public voi ...

  3. el-cascader遇到一个坑的问题

    经仔细分析,如果二级和三级的value一样,就会出现这个问题.

  4. PLSQL查询执行计划

    转: PLSQL查询执行计划 01(转) 2019-05-15 15:15:43 p享自由q 阅读数 365   一般优化途径: 如果能通过修改语句优化,比如查询条件或执行顺序,sql改不了,可以通过 ...

  5. 【前端】input输入框只能输入大于等于0的正数

    大于等于0的正数,允许小数 <input type="number" step="1" min="0" onkeyup="t ...

  6. IISExpress.无法启动IIS Express Web 服务器.Starting IIS Express... IIS Express is running

    x 提示: 无法启动IIS Express Web 服务器. 来自IIS Express的输出: Starting IIS Express... IIS Express is running 总结: ...

  7. 取消Windows server 关机提示备注的方法

    打开“开始”-“运行”,在“打开”一栏中输入“gpedit.msc”命令打开组策略编辑器,依次展开“计算机配置”→“管理模板”→“系统”,双击右侧窗口出现的“显示‘关闭事件跟踪程序’”,将“未配置”改 ...

  8. 【解决篇】映美FP-530K+打印发票卡纸,色带安装问题

    之前由于色带变浅了,而换了色带,后来出现了发票经常中间卡纸的状况,不过也不是不能打,只是偶尔出现,发现每次打,发票纸会撞击一下色带,导致有时候发票会被色带挡一下,导致中间卡纸,有时候又能过去.后来通过 ...

  9. jqGrid设置单选

    beforeSelectRow: function() { $(this).jqGrid('resetSelection'); return true; }

  10. DHCP的配置方法

    1.实验拓扑图: 2.配置命令: AR2: <Huawei>system-view[Huawei]dhcp enable      #开启DHCP服务[Huawei]interface G ...