首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

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

前言 这是今天遇到的面试题,题目 写一个函数,判断给定的日期是几月的第几周,当月1日属于上一月的,该周计入上一月。...例如: 1)输入日期2016-02-01,返回结果为2-1,表示2016年2月1日属于2月的第一周; 2)输入日期2016-09-01,返回结果为8-5,表示2016年9月1日属于8月的第五周。...2月天数.png 我们可以看见,3月1号是周三,那么这几天应该归为上一周,即2月第5周,因此我们需要判断个月的前几天是否是周一,如果不是则归为上一周 if (str.getDate() < 7) {...let week = Math.ceil(str.getDate()/7); let month = str.getMonth() + 1; // 判断个月前7天是周几,如果不是周一...month}-${week}`); } 总结 这个题目考察的是Date类型的使用,我对这部分掌握不怎么牢靠,所以再次翻越了JS高程,照着Date的方法写的,难点在于处理本月前几天,看看是不是属于上个月的周数

5.1K80

【OJ】日期差值与日期累加

KY111 日期差值 1.1 题目分析 日期之间比较可能会出现给的两个年月日都不相同,这个就不好作差,每个月给的天数不同,还有可以是闰年,得先判断一下是不是闰年,这里就写一个判断闰年的函数: bool...,那么就统一设置一下,1的输入的日期都比2的大,这里就写一个判断日期大小的函数: 先比较年,年如果相同就比较月,月如果相同就比较日,如果1的都大于2的就是正确,否则就返回false。..., d2); } 当年月都相同时候,日期直接相减就能得到相差日期,顾在写判断的时候就写为 while (!...d2,就是在相同年月下的差值,再加上之前的sum就是相差日期。...但是得注意题目写了日期相差得多一天,所以这里在最后的加上1

10010

Javascript日期时间总结(转)

() } 3 常见JS的Date的函数 如图所示: ?...4 两个时间相减 4.1 两个日期相减——秒 代码如下: // 说明:两个时间相减 // 参数:JS的Date类型,或者 string 类型,格式为:yyyy-MM-dd HH:mm:ss // 返回:...根据数学知识: 1天=24小时 1小时=60分 1分=60秒 来推导出,相差的分钟数,小时,天数 4.2 两个日期相减——月份 两个日期相差的月份,不能简单的以1个月有多少天来计算,因为有的月份有30天...相差的年份的计算可以参考下面这种方式。 代码如下: var getDiffMonths = function(date1, date2) { if (!...4 时间相加 4.1 两个日期相加——天 代码如下: // 说明:添加天数 // 参数:天数 比如40天 // 结果:比如日期:2016-16-13,加40天,结果为:2016-07-23 Date.prototype.addDays

4.7K10

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

而这道题描述的“用户连续登陆”中的“连续”可以理解为用户当前的登陆日期与本月下一次登陆日期相差一天。...从结果看,我们可以获得以下信息: 1)当“日期”与“用户当月下一个登陆日期”只相差一天,即用户本次登陆为连续登陆; 2)当“日期”与“用户当月下一个登陆日期相差大于一天,即用户本次登陆为连续登陆的最后一天...这样,可以判断用户连续登陆的情况。 接下来就解决用户每次连续登陆天数的计算。 3....from 用户登陆记录表 ) as t1; 可以看出,当连续终止时,即: 1)“日期”与“用户当月下一个登陆日期相差大于一天; 2)“用户当月下一个登陆日期”等于“当月最后登陆日期”; 两种情况。...by 日期) as 每个月登陆顺序 from 用户登陆记录表 ) as t1 ) as t2 where date_sub(用户当月下一个登陆日期,interval 1 day) 日期 or 用户当月下一个登陆日期

99020

C++日期

日期类有一个很重要的核心函数,你在加减天数的时候轻则月份会随之变化,重则年份也会随之变化,我们知道闰年和平年的2月不同,每个月和每个月的天数也不同,只有年和月是有规律的,所以可以写一个获取天数的函数,后续就可以用这个来判断你在某年某月加天数之后是否合法...> 12)//判断月份合法性 { _month = 1;//月份是不能等于0的,这个函数中的天数就不用担心 ++_year;//如果月份大于12个月年份就+1 } }..._day)//同理,月不相同天数没必要比较 { return true; } return false; } 日期日期 这里我们看相差多少天。...int month = 1, int day = 1) { if (year >= 1 &&//判断年份 month = 1 &&//判断月份 day...) { max = d; min = *this; flag = -1; } int n = 0;//相差的天数 while (min !

87900

TimeHelper 轻量级PHP日期时间类库

TimeHelper 是一个简单易用的PHP时间日期助手类库,可以快速实现常用的时间日期操作,比如获取指定时间的秒数,获取友好的时间格式,判断时间范围,计算两个时间相差值,返回N小时/天/星期/月/年前或者后的时间戳等等...-5-1'); //判断日期是否为本月 TimeHelper::isThisMonth(1586451741); //判断日期是否为今年 TimeHelper::isThisYear('Apr 11...计算两个时间相差值 如果只传入一个参数,则与当前时间比较 //计算两个日期相差天数 TimeHelper::diffDays('2022-4-10 23:01:11','Apr 11, 2020');...//计算两个日期相差周数 TimeHelper::diffWeeks('2022-4-10 23:01:11'); //计算两个日期相差月数 TimeHelper::diffMonths(1586451741...beforeWeek(2,'2022-4-10 23:01:11'); //返回指定时间10星期后的时间戳 TimeHelper::afterWeek(10,1646360133); //返回指定时间1个月前的时间戳

13110

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

image.png 【面试题】 有一张“用户登陆记录表”,包含两个字段:用户id、日期。 image.png 【问题】查询2021年每个月,每个用户连续登陆的最多天数。 【解题步骤】 1....而这道题描述的“用户连续登陆”中的“连续”可以理解为用户当前的登陆日期与本月下一次登陆日期相差一天。...从结果看,我们可以获得以下信息: 1)当“日期”与“用户当月下一个登陆日期”只相差一天,即用户本次登陆为连续登陆; 2)当“日期”与“用户当月下一个登陆日期相差大于一天,即用户本次登陆为连续登陆的最后一天...这样,可以判断用户连续登陆的情况。 接下来就解决用户每次连续登陆天数的计算。 3....“日期”与“用户当月下一个登陆日期相差大于一天; 2)“用户当月下一个登陆日期”等于“当月最后登陆日期”; 两种情况。

1K00

JAVA 常用日期工具类:DateUtil的基本常见方法

在我们java开发中,Date日期这个字段会被经常使用,比如获取当前系统的时间,获取上个月,上一年的时间,以及获取两个日期相差的时分秒数,或者对日期类型进行格式化,等等,等等,总之日期的使用多种多样,但万变不离其宗...public class DateUtil { /** * 通过时间秒毫秒数判断两个时间的间隔 * @param form * 开始时间...return (int) ((to.getTime() - form.getTime()) / (1000*3600*24)); } /** * 通过时间秒毫秒数判断两个时间的间隔...return (int) ((to.getTime() - form.getTime()) / (1000*3600)); } /** * 通过时间秒毫秒数判断两个时间的间隔...Date to) { return (int) ((to.getTime() - form.getTime()) / (1000*60)); } /** * 判断两个时间相差多少个月

11.8K40

SQL基础日期函数

1 --dateadd 将制定的数值添加到指定的日期部分后的日期 select dateadd(mm,4,'01/01/99') 2 -- 返回:以当前的日期格式返回05/01/99 3...int 17 select @int=datediff(week,'2010-3-1',getdate()) 18 print '当前时间距 指定的时间 相差: '+convert(varchar...修改需要给用DATEDIFF比较当前日期和“1900-01-01”返回的时间间隔上加1。通过加1个月,我计算出下个月的第一天,然后减去3毫秒,这样就计算出了这个月的最后一天。...修改的部分是把原来脚本中“getdate()”部分替换成计算本月的第6天,在计算中用本月的第6天来替换当前日期使得计算可以获得这个月的第一个星期一。...0))) 137 138 4)判断是否闰年 139 SELECT case day(dateadd(mm, 2, dateadd(ms,-3,DATEADD(yy, DATEDIFF

2K50

类和对象实操之【日期类】

366 : 365); } 获取月份天数 根据当前年份和月份,判断当月有多少天 注意: 闰年的二月需要特殊处理 //获取月份天数 int Date::getMonthDay() const { //非闰年情况下每个月天数...cout << d1; //对自定义类型的输出 ---- 日期+=天数 下面涉及两个重要算法 日期 += 天数 日期 -= 天数 这里把 日期 += 天数 介绍清楚了,日期 -= 天数 就很好写了,就是倒着走...有了 日期 += 天数 后,可以直接实现 日期 + 天数 同理也可以实现 日期 - 天数 核心思想 注:此时实现的是 日期+=天数 进位思想:天数满了后进位到月份上,月份满后进位至年份上 注意: 每个月对应天数都需要计算...,因为每个月都不同 月份为12月时,再+就变成了下一年的一月 假设为公元前,加至0年时,需要特殊处理为公元1年 += 操作返回的是左操作数本身,应对 (d1 += 10) = 20 这种情况 代码实现..._year++; } return daySum * flag; } 这种方法(同轴转动)将会带来一定的性能提升(相对逐天相加来说) 方法 相差 1k 年 相差 1w 年 相差 10w 年 同轴转动

12820

每日一练:关于日期的一系列

计算日期到天数转换 链接: 计算日期到天数转换 思路1:常规的思路是用while循环从这个月的一号循环到该天,但是其实还有很简单的思路,也就是下面的思路二,还有主要讲的也是思路二。...思路二:用一个数组存放每个月累加起来的天数,如第一个月是31天,第二个月是存放31+28=59天,以此类推,这样子存放是有好处的。...我们求这年到某一天的总天数就是这个月的前一个月,以及这个月以前所有天数累加起来的天数和加上该月的天数!...链接: 打印日期 思路:先用sday存放一下总天数,然后将sday判断这年是不是闰年,然后用while循环将sday拆成day和month,每次day++,sday–,直到sday等于0。...然后开始循环,直到min的年月日等于max的年月日为止,用count来统计他们之间相差的天数。 记得判断天是否超过了当月的天数和月数是否超过12月,有的话重置一下!

39620

【每日要闻】台积电入职1年能领35个月薪水;腾讯研发AI辅助判断青光眼

1、台积电分红诱人,入职1年能领35个月薪水 2、中兴、苹果、HTC在美国专利侵权案中胜诉 3、理想汽车:8月交付量4571辆,销量断崖下滑 4、国家税务总局:前7个月新能源汽车免征车辆购置税406.8...,翻三倍至38亿美元 9、美国20年来的首家内存芯片厂,美光拟投资150亿美元在爱达荷州建厂 10、谷歌确认:将在安卓14中引入对卫星连接功能的支持 1、台积电分红诱人,入职1年能领35个月薪水 9月...1日消息,据媒体报道,台积电入职一年的菜鸟员工能领到35个月薪资。...4、国家税务总局:前7个月新能源汽车免征车辆购置税406.8亿元,同比增长108.5% 据国家税务总局最新数据显示,今年1-7月,新能源汽车免征车辆购置税406.8亿元,同比增长108.5%,其中7月份免征车购税...5、AI辅助判断青光眼,腾讯成国内首个获批创新医疗器械的互联网科技公司 9月1日消息,国家药品监督管理局经审查,批准了腾讯医疗健康开发的“慢性青光眼样视神经病变眼底图像辅助诊断软件”创新产品注册申请。

28020
领券