JS 如何通过年和周来算出所在周的周一与周日的日期

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JS 如何通过年和周来算出所在周的周一与周日的日期相关的知识,希望对你有一定的参考价值。

如:2008年第30周,如何取到周一是几号周天是几号

参考技术A 下面的算法是,2009年的第1周是从第一个星期一开始,就是1月5日。不然2009年的第1周的星期一,会跑到2008年12月去了。

<script>
fun(2008, 30);//2008年的第30周

function fun(year, week)
var d = new Date(year, 0, 1);
var time = d.getTime();
var t = week * 7 * 24 * 3600 * 1000;
time += t;
d = new Date(time);
var w = d.getDay();
var d1 = new Date(time - (w - 1) * 24 * 3600 * 1000);
var d2 = new Date(time + ((7 - w) * 24 * 3600 * 1000));
print(d1);
print(d2);


function print(d)
var y = d.getFullYear();
var m = d.getMonth() + 1;
m = m < 10 ? "0" + m : "" + m;
var day = d.getDate();
day = day < 10 ? "0" + day : "" + day;
var weekDay = d.getDay();
var wk = ["星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"]
alert(y + "-" + m + "-" + day + " " + wk[weekDay]);

</script>
参考技术B <script type="text/javascript">
function showdate(y,n)

var uom = new Date(y+"/1/1");
uom.setDate(uom.getDate()+n);
uom = uom.getFullYear() + "-" + (uom.getMonth()+1) + "-" + uom.getDate();
return uom;

alert("2008年第30周:"+showdate("2008",30*7));
</script>
参考技术C (30-1)*7得出总天数
取出2008年1月1日是星期几,
总天数减去星期几再减1,(我做的是从1月1日那个星期开始算。)
2008年1月1日加上这些天数就可以了,周天是每个星期的第一天。
参考技术D var dms=new Date(2007,11,31).getMilliseconds;
dms+=(30*7*24*60*60*1000);
var d1=new Date(dms);
var d2=new Date(dms+6*24*60*60*1000);
var mon=d1.getDate();//周一
var son=d2.getDate();//周天
第5个回答  2008-12-31 周没有算过,不过每个月的几号是星期几是可以算出来的
如:08年8月10日是星期几?可以马上算出是星期四

oracle如何根据传入的时间参数,得到这个参数所在周的周一至周五的日期和星期数

select ‘1‘ AS XQBH,to_char(trunc(to_date(‘2020-06-28‘ ,‘yyyy-mm-dd‘),‘iw‘),‘yyyy-mm-dd‘) AS RQ,‘星期一‘ as XQ
from dual
UNION ALL
select ‘2‘ AS XQBH,to_char(trunc(to_date(‘2020-06-30‘ ,‘yyyy-mm-dd‘),‘iw‘)+1,‘yyyy-mm-dd‘) AS RQ,‘星期二‘ as
XQ from dual
UNION ALL
select ‘3‘ AS XQBH,to_char(trunc(to_date(‘2020-06-28‘ ,‘yyyy-mm-dd‘),‘iw‘)+2,‘yyyy-mm-dd‘) AS RQ,‘星期三‘ as
XQ from dual
UNION ALL
select ‘4‘ AS XQBH,to_char(trunc(to_date(‘2020-06-30‘ ,‘yyyy-mm-dd‘),‘iw‘)+3,‘yyyy-mm-dd‘) AS RQ,‘星期四‘ as
XQ from dual
select ‘5‘ AS XQBH,to_char(trunc(to_date(‘2020-06-30‘ ,‘yyyy-mm-dd‘),‘iw‘)+1,‘yyyy-mm-dd‘) AS RQ,‘星期五‘ as
XQ from dual
UNION ALL
select ‘6‘ AS XQBH,to_char(trunc(to_date(‘2020-06-28‘ ,‘yyyy-mm-dd‘),‘iw‘)+2,‘yyyy-mm-dd‘) AS RQ,‘星期六‘ as
XQ from dual
UNION ALL
select ‘7‘ AS XQBH,to_char(trunc(to_date(‘2020-06-30‘ ,‘yyyy-mm-dd‘),‘iw‘)+3,‘yyyy-mm-dd‘) AS RQ,‘星期日‘ as
XQ from dual

 

如果其他参数,把上面的“2020-06-30”修改成自己的入参数就好,核心函数是trunc(sysydate,‘iw‘);iw是取到当前日期的周一!

以上是关于JS 如何通过年和周来算出所在周的周一与周日的日期的主要内容,如果未能解决你的问题,请参考以下文章

java 获取某一月的所有周的日期段(周一到周日)

求关于js根据日期判断此日期是在一年中的第几周

Excel中如何计算日期所在的这年的第几周,以周一作为一周的第一天

C#中用当前日期算周的若干问题?

oracle如何根据传入的时间参数,得到这个参数所在周的周一至周五的日期和星期数

oracle如何根据传入的时间参数,得到这个参数所在周的周一至周五的日期和星期数