2021-10-7 写在开始

对于刚毕业时的迷茫

笔者于今年6月毕业于双非院校sc本科,在秋招时放弃了去互联网的机会选择了国企。三个月下来发现这里的生活或许是达到了所谓的955WLB,但是每天摸鱼写文档接触不到技术的日子感觉不是我想要的生活…因此,开了这篇博客打算让自己从头开始复习,重拾Java技术栈,找回当初学技术的热情。

如果有大佬愿意捞我请直接私聊。

如果有什么错误的地方还请各位批评指正,欢迎大家一起交流学习。
下面跳转总链接
Java开发打怪升级路程

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
下面是符合要求的代码实现: ``` /** * 根据参数格式返回两个日期之间所有日期的数组、所有月份的数组或所有年份的数组 * @param {string} startDate 开始时间字符串,格式为 'yyyy'、'yyyy-mm' 或 'yyyy-mm-dd' * @param {string} endDate 结束时间字符串,格式同 startDate * @returns {Array} 所有日期、月份或年份的数组 */ function getAllDateBetween(startDate, endDate) { // 判断日期格式是否一致 const formatReg = /^(\d{4})(-)(\d{1,2})\2(\d{1,2})$/; const isDate = formatReg.test(startDate) && formatReg.test(endDate); const formatReg2 = /^(\d{4})(-)(\d{1,2})$/; const isMonth = formatReg2.test(startDate) && formatReg2.test(endDate); const formatReg3 = /^(\d{4})$/; const isYear = formatReg3.test(startDate) && formatReg3.test(endDate); if (!isDate && !isMonth && !isYear) { throw new Error('参数格式不一致'); } // 判断结束时间是否大于开始时间 const start = new Date(startDate); const end = new Date(endDate); if (end <= start) { throw new Error('结束时间必须大于开始时间'); } // 获取所有日期、月份或年份的数组 const dateArr = []; if (isDate) { let date = start; while (date <= end) { dateArr.push(date.toLocaleDateString().replace(/\//g, '-')); date.setDate(date.getDate() + 1); } } else if (isMonth) { let date = start; while (date <= end) { dateArr.push(date.toLocaleDateString().replace(/\//g, '-').slice(0, 7)); date.setMonth(date.getMonth() + 1); } } else if (isYear) { let date = start; while (date <= end) { dateArr.push(date.getFullYear().toString()); date.setFullYear(date.getFullYear() + 1); } } return dateArr; } ``` 下面是单元测试的代码实现: ``` describe('getAllDateBetween', () => { it('当参数格式为 "yyyy-mm-dd" 格式的字符串时,返回为两个日期之间所有日期的数组(含入参日期),格式同入参', () => { const startDate = '2023-6-8'; const endDate = '2023-6-11'; const result = getAllDateBetween(startDate, endDate); expect(result).toEqual(['2023-6-8', '2023-6-9', '2023-6-10', '2023-6-11']); }); it('当参数格式为 "yyyy-mm" 格式时,返回为两个月份之间所有月份的数组(含入参月份),格式同入参', () => { const startDate = '2023-6'; const endDate = '2023-11'; const result = getAllDateBetween(startDate, endDate); expect(result).toEqual(['2023-6', '2023-7', '2023-8', '2023-9', '2023-10', '2023-11']); }); it('当参数格式为 "yyyy" 格式时,返回为两个年份之间所有年份的数组(含入参年份),格式同入参', () => { const startDate = '2021'; const endDate = '2023'; const result = getAllDateBetween(startDate, endDate); expect(result).toEqual(['2021', '2022', '2023']); }); it('当两个入参时间格式不一致时抛出异常', () => { const startDate = '2023-6-8'; const endDate = '2023'; expect(() => getAllDateBetween(startDate, endDate)).toThrow('参数格式不一致'); }); it('当第二个参数不大于第一个参数的时间时抛出异常', () => { const startDate = '2023-6-8'; const endDate = '2023-6-7'; expect(() => getAllDateBetween(startDate, endDate)).toThrow('结束时间必须大于开始时间'); }); }); ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值