首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

实用主义:JS判断给定日期是第几周

前言 这是今天遇到的面试题,题目 写一个函数,判断给定的日期是几月的第几周,当月1日属于上一月的,该周计入上一月。...例如: 1)输入日期2016-02-01,返回结果为2-1,表示2016年2月1日属于2月的第一周; 2)输入日期2016-09-01,返回结果为8-5,表示2016年9月1日属于8月的第五周。...(这里计算一周是从周一到当周周天算为一周;某天是属于某月的某一周的。以2016年4月为例:4月4日至10日为4月的第一周;4月1日至3日不属于4月的周次,而是归入3月计算。)...,如果这个月一号不是周一,那么归为上一周。...2月天数.png 我们可以看见,3月1号是周三,那么这几天应该归为上一周,即2月第5周,因此我们需要判断一个月的前几天是否是周一,如果不是则归为上一周 if (str.getDate() < 7) {

5.3K80
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    DM达梦数据库关于时间日期函数的总结

    总结了几点常用的关于日期时间相关的一些函数的用法,有时候可以很方便的帮你解决些棘手问题 1. 查询当前日期 select TRUNC(SYSDATE) from dual; 2....8.关于w、ww、iw的用法和区别: ww:按每年的1月1日为第一周第一天,1月8日为第二周第一天 w:与ww功能类似,不过它是按每月的1日为每周第一天,例如1日为当月第一周第一天,8日为第二周第一天...iw:自然周,为星期一至星期日算一周,且每年的第一个星期一为第一周 select to_char(sysdate,‘ww’) from dual; – 查询今年第几周,每天第一天为第一周第一天 select...trunc(日期,‘d’) from dual; --意周日为一周起始日期 查询当周第一天 select trunc(日期,‘iw’) from dual;–意周日为一周结束日期 查询当周第一天 结束语...这边文章总结了大梦数据库常用的一些有关时间及日期方面的函数,并列举了每个函数的用法,如有其他疑问请大家评论留言指出,欢迎大家指正。

    90510

    corn表达式 具体详解与案例

    最后一个星期四触发 "#" 用来指定具体的周数,"#"前面代表星期, "#"后面代表本月第几周,比如"2#2"表示本月第二周的星期 一,"5#3"表示本月第三周的星期四,因此, "5L"这种形式只不过是...字符“W”只能配合一个单独的数值使用, 不能够是一个数字段,如:1-15W是错误的。 “L”和“W”可以在日期域中联合使用,LW表示这个月最后一周的工作日。...“#” 字符“#”只允许在星期域中出现。 这个字符用于指定本月的某某天。 例如:“6#3”表示本月第三周的星期五 (6表示星期五,3表示第三周)。 “2#1”表示本月第一周的星期一。...“4#5”表示第五周的星期三。 “C” 字符“C”允许在日期域和星期域出现。 这个字符依靠一个指定的“日历”。...也就是说这个表达式的值依赖于相关的“日历”的计算结果, 如果没有“日历”关联,则等价于所有包含的“日历”。 如:日期域是“5C”表示关联“日历”中第一天, 或者这个月开始的第一天的后5天。

    1.9K20

    python手把手教你获取某月第一天和最后一天

    1.4 格式化输出日期和时间的表示方式在不同的地方、组织等中可能有所不同Python 有 两个方法strftime()和strptime()来处理这个问题。...第一周是0.00, 01, ..., 53%W年的第几周(周一是周的第一天)....第一周是000, 01, ..., 53%c适合本地时区的时间日期表达形式Mon Sep 30 07:06:05 2013%x适合本地时区的日期表达形式09/30/13%X适合本地时区的时间表达形式07...这里月份+1有可能溢出到下一年,因此对12月份需要做逻辑分类处理。如果月份==12,那么下一个月就是第二年的一月。以下是这个逻辑的实现代码,可用python2执行。#!...calendar 模块中定义的函数和类使用理想化的日历,当前的公历在两个方向上无限扩展。默认情况下,这些日历将星期一作为一周的第一天,星期日作为最后一天(欧洲惯例)。

    2.6K10

    Java获取时间格式化日期代码总结

    我们在Java开发过程中,少不了与时间打交道,比如根据两个日期得出相差的时分秒,时间加减,时间累加,前5分钟,前一个月,前一年,等等...所以我从网上搜集一些常用的时间/日期格式化代码,以飨读者。...本周,下一周的周数变化 private static int MaxDate;// 一月最大天数 private static int MaxYear;// 一年最大天数 /** *...); System.out.println("获得相应周的周六:" + getNowTime("yyyy-MM-dd")); System.out.println("获取本月第一天日期:...6个月 String strDate = sdf.format(c.getTime());// 的到你想要得6个月后的日期 return strDate; } /** *...号 lastDate.add(Calendar.MONTH, 1);// 加一个月,变为下月的1 号 lastDate.add(Calendar.DATE, -1);// 减去一天,变为当月最后一天

    4.2K40

    &下一个前端组件“日历”

    现在我们先来画一个日历, 首先,最上一排是星期一至星期日,第二排至最后一排是当月的日期。...然后第二排的左起前几个格要空着,为啥呢,因为当月的第一天可能不是当月的星期一,就是说,当月的1号是星期几,1号之前就空几格。 咱们先来验证思路,什么闰年啊,点击按钮月份切换啊,咱们都不管。...首先,我们来获取相应的日期,先是new一个日期对象, var nstr=new Date(); //当前Date资讯 然后是获得年份 var ynow=nstr.getFullYear(); //年份...我们已经确定日历有7列,因为一周七天嘛。 然后每个月有多少天是固定的,已经写在上面的数组里了。唯一变化的就是每个月的第一天是星期几不一定。...所以要在每个月的天数这个数字上,再加上是1号是星期几,这样就是当月的日数和1号左边的空白格。

    1.4K51

    定时任务框架中 Cron表达式

    它停在下午 5:59 是因为值 17 在小时域上,在下午 6 点时,小时变为 18 了,也就不再理会这个 trigger,直到下一天的下午5点。...在你希望 trigger 在该域的所有有效值上被激发时使用 * 字符。 ? 问号 ? 号只能用在日和周域上,但是不能在这两个域上同时使用。可以认为 ? 字符是 “我并不关心在该域上是什么值。”...例如,当月域上指定了 JAN 时,在日域上的 L 会促使 trigger 在1月31号被触发。假如月域上是 SEP,那么 L 会预示着在9月30号触发。...在月域上的 * 说明是 “每个月”。 当 L 字母用于周域上,指示着周的最后一天,就是星期六 (或者数字7)。...例如,如果你指定周域的值为 6#3,它意思是某月的第三个周五 (6=星期五,#3意味着月份中的第三周)。另一个例子 2#1 意思是某月的第一个星期一 (2=星期一,#1意味着月份中的第一周)。

    58140

    抖音面试题:遇到连续问题怎么办?

    连续问题的万能模板 我在《拼多多面试题:如何找出连续出现N次的内容?》里讲过遇到“连续问题”如何解决,并送出了一个万能模板,模板使用的是窗口函数解决连续问题。...窗口函数lead可以获取每个字段的后面的第n个值,并生成新的一列。 而这道题描述的“用户连续登陆”中的“连续”可以理解为用户当前的登陆日期与本月下一次登陆日期相差一天。...我们可以先用窗口函数lead获取“用户当月下一个登陆日期”: select 用户id, month(日期) as 月, 日期, lead(日期,1,'当月最后登陆日期...从结果看,我们可以获得以下信息: 1)当“日期”与“用户当月下一个登陆日期”只相差一天,即用户本次登陆为连续登陆; 2)当“日期”与“用户当月下一个登陆日期”相差大于一天,即用户本次登陆为连续登陆的最后一天...子查询 用户每次连续登陆天数与用户登陆顺序存在某种必然的关系,此时我们可以先用子查询将用户在本月的阅读顺序查询出来,使用窗口函数row_number: select *, lead(日期

    1K20

    定时任务cron表达式详解_el表达式详解

    与{星期}互斥,即意味着若明确指定{星期}触发,则表示{日期}无意义,以免引起 冲突和混乱 “,” 代表在指定的日期触发,比如”1,10,20″代表1号、10号和20号这3天触发 “-“代表在指定的日期范围内触发...1,10]范围内,每隔2天触发,即1号,3号,5号,7号,9号触发 “L” 如果{日期}占位符如果是”L”,即意味着当月的最后一天触发 “W “意味着在本月内离当天最近的工作日触发,所谓最近工作日,...与{日期}互斥,即意味着若明确指定{日期}触发,则表示{星期}无意义,以免引起冲突和混乱 “,” 代表在指定的星期约定触发,比如”1,3,5″代表星期天、星期二和星期四触发 “-“代表在指定的星期范围内触发...“#”用来指定具体的周数,”#”前面代表星期,”#”后面代表本月第几周,比如”2#2″表示本月第二周的星期一,”5#3″表示本月第三周的星期四,因此,”5L”这种形式只不过是”#”的特殊形式而已...* 5#3” 每个月第三周的星期四的10点15分0秒触发任务 版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。

    96630

    java定时执行任务CRON表达式

    例如:“6L”用在日期元素上,表示这个月的倒数第6天 注意:在使用“L”参数时,不要指定列表或范围,因为这会导致问题 " W " 字符代表着 工作日(Mon-Fri / 周一...字符“W”只能配合一个 单独的数值使用,不能够是一个数字段,如:1-15W是错误的。 " L " 和" W "可以在日期域中联合使用,LW表示这个月最后一周的工作日。..." # " 只允许在 星期域 中出现。这个字符用于指定本月的某某天。(格式: 星期中天数的编号1-7/月中的第几周1-5) 例如:“6#3”表示本月第三周的星期五(6表示星期五,3表示第三周)。...“2#1”表示本月第一周的星期一。“4#5”表示第五周的星期三。 " C ":代表“Calendar”的意思。它的意思是计划所关联的日期,如果日期没有被关联,则相当于日历中所有日期。...例如: 5C在日期字段中就相当于日历5日以后的第一天。1C在星期字段中相当于星期日后的第一天。

    6.1K12

    日历组件的开发思路讲解&&日历组件在实际工作中的使用方式

    做一个简单的日历,只需要三样东西: 1、通过Date()对象获取当前的年月日; 2、再获取当月1号是星期几; 3,一个包括12个月的日期的数组; 然后开始画格。...先来看例子当中的这句, var idx=i*7+k; 它的作用就是给每个月的所有的格,都编上号。 下一句 var date_str=idx-firstday+1, 它的作用是,计算日期起点 怎么讲呢?...的值,在刚才我们已经通过 var firstday=n1str.getDay(); 获取当月第一天星期几,得到它的值是2,星期二嘛 那么那么date_str的值就是0-2 + 1, 这么算的,0-2 =...至于获得每个月的月份日期,是通过获取数组m_days[mnow]里的第mnow个月份来得到手。 大家看例子上半部分,数组m_days里存着12个月份,每个月的总天数。...它的特征是列数固定,一周七天,所以下一行的数字,总是外层for循环中i的值乘7,再加上内层for循环K的值。这样每下一行的数字都是在前一或几行的数字基础再加。而不会重头计起。

    2.7K100

    quartz 时间配置

    它停在下午 5:59 是因为值 17 在小时域上,在下午 6 点时,小时变为 18 了,也就不再理会这个 trigger,直到下一天的下午5点。...在你希望 trigger 在该域的所有有效值上被激发时使用 * 字符。 ? 问号 ? 号只能用在日和周域上,但是不能在这两个域上同时使用。你可以认为? 字符是 "我并不关心在该域上是什么值。"...例如,当月域上指定了JAN 时,在日域上的L会促使 trigger 在1月31号被触发。假如月域上是SEP,那么 L 会预示着在9月30号触发。...在月域上的 * 说明是 "每个月"。 当 L 字母用于周域上,指示着周的最后一天,就是星期六 (或者数字7)。...例如,如果你指定周域的值为6#3,它意思是某月的第三个周五 (6=星期五,#3意味着月份中的第三周)。另一个例子2#1意思是某月的第一个星期一 (2=星期一,#1意味着月份中的第一周)。

    1.1K30

    JDK8日期API解析

    1、java.time包下基本类使用 1.1、now方法在日期时间类的使用 Date-Time API中的所有类均生成不可变实例,它们是线程安全的,并且这些类 不提供公共构造函数,也就是说没办法通过new...,发现了这个对象里面封装的不仅有时间日期,并且还有偏移量+时 区,那么时区如何在Java中获取呢,通过提供的一个类ZoneId的getAvailableZoneIds方法可以...:2016-02-13 4天后的时间是:2016-02-17 3周后的时间是:2016-03-05 5个月后的时间是:2016-07-13 2年后的时间是:2018-02-13 2.2、LocalTime...firstDayOfYear() 当年的第一天 static TemporaAdjuster firstInMonth(DayOfWeek dayOfWeek) 当月的第一个周x(通过参数确定)...); } } 当月的第一天是:2022-04-01 下个月的第一天是:2022-05-01 下一年的第一天是:2023-01-01 本年的第一天是:2022-01-01 本月的最后一天是:2022

    8410

    敏捷迭代运作中的罪与罚

    (后台开发与UI设计周)、前置第二周(中台开发周)、版本第一周(前端开发周)、版本第二周(测试周)、版本第三周(发布周)。        ...,其第一个里程碑在前置第一周周二前后,需要完成核心需求的方案设计与评审;其第二个里程碑是前置第一周的周四前后,核心交付项是后台接口设计文档,中台基于此才能开始中台方案设计工作;第三个工作里程碑是在版本第一周周一前后完成全量后台开发工作...,中台方案评审最后也是跟详细需求宣讲会一起,既能减少会议次数,也能反哺需求澄清,从中台角度帮助产品完善需求场景与边界条件;中台的第二个里程碑是在版本第一周周一前后,需要交付中台接口设计文档(其实最好能提前到前置第二周周四...);中台的第三个里程碑节点出现在版本第一周周四前后,需要完成全量需求的中台开发工作,并与后台完成联调;中台的第四个里程碑节点是版本第二周周四,将中台代码发布到预部署灰度发布环境供测试进行灰度测试;中台的第五个里程碑节点是版本第三周周二...可以在前一版本的上线评审会上作下一版本的前端方案评审;前端开发的第二个里程碑是在版本第二周周二前后,此时需要完成所有需求的前端开发工作与自测试;前端的第三个里程碑节点就是App版本的发布,也即版本第三周周四

    24820

    抖音面试题:送你一个万能模板,要吗?

    窗口函数lead可以获取每个字段的后面的第n个值,并生成新的一列。 而这道题描述的“用户连续登陆”中的“连续”可以理解为用户当前的登陆日期与本月下一次登陆日期相差一天。...我们可以先用窗口函数lead获取“用户当月下一个登陆日期”: image.png image.png 当“日期”是该用户在当月最后一天登陆时,记录为“当月最后登陆日期”,如果不进行设置,将会返回Null...从结果看,我们可以获得以下信息: 1)当“日期”与“用户当月下一个登陆日期”只相差一天,即用户本次登陆为连续登陆; 2)当“日期”与“用户当月下一个登陆日期”相差大于一天,即用户本次登陆为连续登陆的最后一天...可以看出,当连续终止时,即: 1)“日期”与“用户当月下一个登陆日期”相差大于一天; 2)“用户当月下一个登陆日期”等于“当月最后登陆日期”; 两种情况。...汇总分析 最后获取“每个月,每个用户连续登陆的最多天数”,使用group by函数。

    1K00
    领券