首页
学习
活动
专区
圈层
工具
发布

小技巧 - 计算下一个周几间隔天数

例如: 当n=1,k=1,表示从周一到下一个周一经历的天数,函数应该返回7 当n=2,k=1,表示从周二到下一个周一经历的天数,函数应该返回6 当n=0,k=1,表示从周日到下一个周一经历的天数,函数应该返回...分析 假设k=1,表示要达到下一个周一的天数,那么n属于[0,1,2,3,4,5,6]分别对应着结果[1,7,6,5,4,3,2] 假设k=2,表示要达到下一个周二的天数,那么n属于[0,1,2,3,4,5,6...假如以周天为起始天,当k=0时,即从本周各天到达下一个周天,结果是[7,6,5,4,3,2,1],存在这样的关系: 可以看到,当我们要计算到下一个周几的时候,就让本周几对齐到索引0,因为从一个周几到下一个相同的周几一定是经历...图像表示为将上一行全部左移了一位,移出去的周天,应该填充到最右端,和最后一位对齐,因为每周都是周而复始的,周六之后是周天。虚框代表移除的部分,实框表示向右填补的部分。...k=2,让2对齐到索引0: 实现 由于定义的0为周天,所以我们想让周几对齐到索引0,减去周几这个数值即可,而索引即对应着数组[7,6,5,4,3,2,1]的值,不一定非要初始化这样一个数组,因为它们有这样一个关系

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

    面试题:JS 获取某月的天数

    转载自:linong https://segmentfault.com/a/1190000038295923 获取某个月的天数,这个题一般都是在学 switch(){} 一章的案例。...(我搜的,具体怎么背我忘了) 这里面还有个闰年的计算规则:四年一闰,百年不闰,四百年再闰。可以被4整除,但是不能被100整除,除非可以被400整除。 ? 是不是被上面的魔性概念征服了?...接来下我们来实现一下 面试题:JS 获取某月的天数 先上测试用例 function getMonthCountDay(year, month){ // year 为年份,month 为月份 }...方案原理 js 中 Date 在处理时间的时候会做进位退位操作。 ? 借助 Date API 处理日期溢出特性(退位方案) 刚才是用的进位,然后减去多余的。...方案原理 js 中 Date 在处理时间的时候会做进位退位操作。 ? 利用这个特性还可以做什么? ? 获取月初是周几 ? 获取月末是周几 ?

    3.3K20

    golang实现自然周计算

    最近看到一个题;如何算每一年的自然周? 什么叫自然周?:自然周指的是星期一到星期天。 一个自然周是7天,其实我们需要算出来自然周,这个思路是要获取这一年第一周是有几天,后面的每周都是7天。...= nil { fmt.Println(err) return } //获取这个时间的基于这一年有多少天了 yearDay := t.YearDay...() //获取上一年的最后一天 yesterdayYearEndDay := t.AddDate(0, 0, -yearDay) //获取上一年最后一天是星期几 dayInWeek...= 0 { firstWeekDays = 7 - dayInWeek } week := 0 //如果这一年的总天数小于第一周总天数,则是第一周,否则按照这一年多少天减去第一周的天数除以...7+1 但是要考虑这一天减去第一周天数除以7会取整型, //所以需要处理两个数取余之后是否大于0,如果大于0 则多加一天,这样自然周就算出来了。

    1.6K50

    如何用js获取当前月份的天数

    在获取每月天数的时候,一般都是存储到一个数组中进行获取,但是如果是二月份的话就需要首先判断是否闰年,再确定是28还是29了。...js可以通过Date对象很方便的获取到每月的天数,在初始化Date对象时,我们可以通过这种方式: var d = new Date(2017,2,0); console.log(d.getDate())...; 以上代码可以在控制台输出2015年2月份的天数 Date对象月份从0开始,即0表示1月份,以此类推。...如果要获取当前月份天数: function mGetDate(){ var date = new Date(); var year = date.getFullYear();...JavaScript中day的范围为1~31中的值,我们获取第N-1个月的第0天,就是N-1个月的最后一天,这样就获得了第N个月有多少天。

    15K50

    使用echarts制作一个漂亮的一周天气预报图

    内容概况非常简洁漂亮的天气效果, echarts中使用到了xAxis.axisLabel. rich, 效果很满意, 只展示了静态代码, 保存为html后就可以直接运行echarts数据基于易客云天气API...返回的json制作, 有需要的可以自己对接, 下一篇文章我会发布一个PHP对接版本技术点:rich负责定义模板, formatter负责输出格式化后的数据, xAxis赋值是个数组列表, 第一组position...} 的语法调用模板,实现标签内多元素的样式分离。...效果预览 点击在线预览HTMLhtml我已经做好了, 点击上面的链接可预览效果rich的使用每个模板是一个独立的样式对象,核心属性:width/height:控制图标尺寸(必须设置,否则图片可能拉伸异常...-4级', '2级'] }; // 初始化ECharts图表 function initTemperatureChart() { // 获取图表容器

    63100

    Java—java.util.calendar类详解「建议收藏」

    ,以月份天数为标准,一个月的1号为第一周,8号为第二周 Calendar.DAY_OF_WEEK_IN_MONTH //8 //一周7天当中,当前时间是星期几 Calendar.DAY_OF_WEEK...); //当前时间是所在当前月的第几个星期,以月份天数为标准,一个月的1号为第一周,8号为第二周 ca.get(Calendar.DAY_OF_WEEK_IN_MONTH); //一周7天当中,当前时间是星期几...//将日历对象指向当前周的周天 Calendar ca = Calendar.getInstance(); ca.set(Calendar.DAY_OF_WEEK,Calendar.SUNDAY);/.../第二个参数的取值范围是表示周一到周天的七个静态常量 add方法 基于日历的规则实现日期加减。...该方法可以设置星期几为一周的第一天,不会影响表示周一到周天的七个静态常量。

    5.7K20

    Java 日期类常用写法小结

    做了一个工具类来处理此事(注意:这里计算的一周是从周一到周日,如果要算周天到周六,把获取本周一时括号里的 +1 去掉): static class DateCalcUtil { public...int GET_NEXT_SUNDAY = 5; public static Calendar calc(Calendar base, int calcType) { // 获取这一周开始基准...int min = base.getActualMinimum(Calendar.DAY_OF_WEEK); // 获取当天在这一周内天数 int current...DateCalcUtil.GET_PREVIOUS_MONDAY); Calendar previousSunday = DateCalcUtil.calc(base, DateCalcUtil.GET_PREVIOUS_SUNDAY); 获取两个日期相差天数...注意点: getTimeInMillis 返回的是 0 时区时间,所以有可能把你的时间加减了几个小时,造成计算天数有误,这种方法必须考虑时区因素再运算。

    68920

    Java 日期类常用写法小结

    做了一个工具类来处理此事(注意:这里计算的一周是从周一到周日,如果要算周天到周六,把获取本周一时括号里的 +1 去掉): static class DateCalcUtil { public...int GET_NEXT_SUNDAY = 5; public static Calendar calc(Calendar base, int calcType) { // 获取这一周开始基准...int min = base.getActualMinimum(Calendar.DAY_OF_WEEK); // 获取当天在这一周内天数 int current...DateCalcUtil.GET_PREVIOUS_MONDAY); Calendar previousSunday = DateCalcUtil.calc(base, DateCalcUtil.GET_PREVIOUS_SUNDAY); 获取两个日期相差天数...注意点: getTimeInMillis 返回的是 0 时区时间,所以有可能把你的时间加减了几个小时,造成计算天数有误,这种方法必须考虑时区因素再运算。

    98630

    mysql查询一周内的数据,解决一周的起始日期是从星期日(星期天|周日|周天)开始的问题

    前言 今天又遇到很坑的问题了,因为外国友人每一周的起始日期是周日,跟我们的不一样,我们每一周的起始日期是星期一,这样导致我要用mysql统计一周的数据的时候,对于我们来说,查询的记录包括:上周日的记录...+本周的数据到星期六 这样的数据,这就不符合我们的要求,把上周日的数据也统计进来了。...查询到的记录是 ? 大家可以很明显的看到2018年12月2日的记录也查出来了,12月2日是星期日。为了让大家更直观的看,我把12月的月份截出来 ? 所以这样查询出来的记录,对于我们来说是有问题的。...从上面YEARWEEK()函数API可以知道,还有mode这个字段是可以自己设置一周是从星期几开始的,不写的话默认是星期日为一周的开始日期,这里为了适用我们的系统,将星期一设置为一周的开始日期,我们就给...三、总结 所以,大家在使用sql函数的时候,一定要看看这个函数的API,这样才能将这个函数使用的融会贯通,比别人更加的掌握。 所以这里考大家一个问题,oracle怎么查询本周、上周的记录呢?

    4.5K21

    AkShare-另外数据-电影票房

    限量: 指定日期所在年度的票房数据, 只能获取最近年度的数据 输入参数 名称 类型 必选 描述 date str Y date="20201019"; 输入具体的日期即可 输出参数 名称 类型 默认显示...movie_boxoffice_yearly_first_week 目标地址: https://www.endata.com.cn/BoxOffice/BO/Year/firstWeek.html 描述: 获取指定日期所在年度的年度首周票房数据...限量: 指定日期所在年度的年度首周票房数据, 只能获取最近年度的数据 输入参数 名称 类型 必选 描述 date str Y date="20201019"; 输入具体的日期即可 输出参数 名称 类型...float Y - 国家及地区 float Y - 上映日期 float Y - 首周天数 float Y - 接口示例 import akshare as ak movie_boxoffice_yearly_first_week_df...占总票房比重 场均人次 国家及地区 上映日期 首周天数 0 1 鲨海逃生 灾难 2473 52 5 美国/英国 2020

    1.3K20

    【LeetCode 周赛】一场关于子数组的专题周赛

    ) 容易想到的方法是枚举每个位置开始的子数组,并计算最长奇偶子数组长度,可以得到时间复杂度为 O(n^2) 的解法。...题解二(枚举分组) 实际上,数组被分割为若干个满足奇偶子数组的片段,最长奇偶子数组不会被其他更长的奇偶子数组所包含。...绝对差不超过限制的最长连续子数组 是几乎相同的,区别在于本题固定绝对差至多为 2,且目标结果是方案数而不是最长不间断子数组。...+ 平衡树) 题目的不平衡度表示子数组排序后与前驱元素的差值大于 1 的个数(长度为 k 的子数组的最大不平衡度为 k - 1),最直接的做法是先排序再计数。...需要考虑到,如果 nums[i] 是作为子数组的最小值时,是不会产生贡献度的,所以我们要把这部分子数组减去。

    52230
    领券