算出指定日期在当年的第几周

news/2025/1/11 10:14:49/

假定我们是按周一算一周开始。

基本计算应该是算出指定日期在当年的第几天,然后算出这些天换算成周,除以7,向下取整+1

比如 当周7号,7-1 = 6 ,6/7=0 余 6

这里涉及到的就是开始日期和结束日期,这样才能算出日期差。

但如果当年元旦并非周一,那上面的结论就不行了,至少第七天已经是第二周了。那就起始日期再往前,找到元旦那一周的周一,算出结束日期到起始日期的天数除以7

这样梳理一下就是:

输入:日期

得出:日期所在的元旦的日期和星期,算出当周的周一

计算:日期-周一得到天数,Math.floor(天数/7)+1


function getMondayDate(date){const currentDay = date.getDay();const target = new Date(date);if(currentDay===0){target.setDate(target.getDate()-6)}else{target.setDate(target.getDate()+1-currentDay)}return target;
}function getFirstDate(date){const year = date.getFullYear();const target = new Date(year, 0, 1)return target
}function getWeekNo(date){const firstWeekMonday = getMondayDate(getFirstDate(date))const timeDiff = date.getTime() - firstWeekMonday.getTime();const days = Math.floor(timeDiff/1000/60/60/24);return Math.floor(days/7)+1
}


http://www.ppmy.cn/news/799222.html

相关文章

BTG7016A带诊断的开关芯片

目录 1、概述 ​编辑1.1、特征 1.2、潜在应用 1.3、描述 1.4、诊断特征 1.5、保护特征

元素配对----贪心1 (爱思创)

源代码 #include <bits/stdc.h> using namespace std; int main() {int n,data,sum0;cin>>n;vector<int> vec1,vec2;for(int i0; i<n; i){cin>>data;vec1.push_back(data);}for(int i0; i<n; i){cin>>data;vec2.push_back(data);}sort(ve…

在Linux系统下安装部署Singularity容器

在以下两篇博客中&#xff1a; 浅谈Singularity容器_男孩李的博客-CSDN博客 Singularity容器常用命令_ubuntu卸载singularity_男孩李的博客-CSDN博客 我们分别介绍了Singularity容器以及Singularity容器的常用命令&#xff0c;相信大家对高性能计算容器Singularity并不陌生了…

绝对逃生游戏的计算机要求,绝地求生需要什么配置 绝地求生电脑配置详解

绝地求生是当下最热门的游戏之一&#xff0c;但由于配置要求较高&#xff0c;游戏优化差劲等问题&#xff0c;导致很多玩家出现电脑跟不上&#xff0c;游戏体验不足等情况&#xff0c;在这里给大家详细介绍一下绝地求生所需要的电脑配置要求&#xff0c;大家可以认真查看一下&a…

Qt保存代码

补全保存代码 #include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent) :QWidget(parent),ui(new Ui::Widget) {ui->setupUi(this); }Widget::~Widget() {delete ui; }//字体按钮对应的槽函数 void Widget::on_fontBtn_clicked() {…

解析:为什么程序员应该有一台Mac个人电脑?

对于开发来讲&#xff0c;使用Mac电脑的好处&#xff0c;下面简单列举几个&#xff1a; 首先&#xff0c;macOS很安全和稳定&#xff0c;Mac 系统的底层是最原始的unix操作系统&#xff0c;很多大型的银行和军工企业都是这个操作系统&#xff0c;安全性很高&#xff0c;基本不…

为什么程序员应该有一台 Mac 个人电脑

程序员的成长之路互联网/程序员/成长/职场 关注 阅读本文大概需要 5.4 分钟。 对于开发来讲&#xff0c;使用 Mac 电脑的好处&#xff0c;下面简单列举几个&#xff1a; 首先&#xff0c;macOS 很安全和稳定&#xff0c;Mac 系统的底层是最原始的 unix 操作系统&#xff0c;很…

相对于外存储器来说 微型计算机的内存储器,[转载]计算机基础知识题库(十)

60 、ASCII码指的是() A)国家信息交换码 B)信息交换码 C) 美国国家信息交换码 D)美国信息交换标准码 61 、在ASCII码表中&#xff0c;ASCII码值从小到大排列顺序是() A)数字、小写英文字母、大写英文字母 B)数字、大写英文字母、小写英文字母 C)小写英文字母、大写英文字母、数…