计算某一天属于一年中第几周,以及周一到周日的时间。

参考资料:

  周算法参考的是ISO8601定义的方法,如果您对此有疑问,请详见:http://en.wikipedia.org/wiki/ISO_week_date

JS代码实现:

      var normalYear = [0,31,59,90,120,151,181,212,243,273,304,334];
      var leapYear = [0,33,60,91,121,152,182,213,244,274,305,335];

      var nowDate = new Date();

      var dateStr = nowDate.Format(‘yyyy-MM-dd‘);

      var year = parseInt(dateStr.substring(0,4));

      var mon = parseInt(dateStr.substring(5,8));

      var day = parseInt(dateStr.substring(8,10));

      var numberOfWeek = parseInt(nowDate.getDay()); //

      var orginDay = 0;
      if(isLeapYear(year)){
        orginDay = normalYear[numberOfWeek+1] + day;
      }else{
        orginDay = leapYear[numberOfWeek+1] +day ;
      }
      var weekNum = (orginDay - numberOfWeek +10)/7 ; //这个就是结果,这一天属于一年的哪一周
      weekNum = weekNum.toString().substring(0,weekNum.toString().indexOf(".")); 
      if(numberOfWeek == 0){
        begTime = begTime.add(-(1000*60*60*24)*6).Format(‘yyyy-MM-dd‘);
        endTime = endTime.Format(‘yyyy-MM-dd‘);
      }else{
        begTime = begTime.add(-((1000*60*60*24))*(numberOfWeek-1)).Format(‘yyyy-MM-dd‘);
        endTime = endTime.add(((1000*60*60*24))*(7-numberOfWeek)).Format(‘yyyy-MM-dd‘);
      }
      //begTime、endTime 意思是一周中周一到周末的时间。

      function isLeapYear(year){//判断是否闰年

        if(((year%4)==0 && (year %100 !=0)) || (year % 400 == 0)){

          return true;
        }
         return false;
        }

时间: 2024-08-11 22:34:58

计算某一天属于一年中第几周,以及周一到周日的时间。的相关文章

Java 根据指定日期计算所在周的周一和周日

public static void main(String[] args) throws ParseException {                     SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd"); //设置时间格式            Calendar cal = Calendar.getInstance();            Date time=sdf.parse("2015-9-4 

JS计算指定日期是距今的第几周,星期几

无意中在百度知道上发现这样一个问题,就抽时间见写了一个函数. 首先我们需要明确,既然是指定日期距今的第几周,那么就要知道指定的日期是什么,而且是不能确定的,会根据使用者不同而得到不同的日期,所以我们需要将这个日期设置为参数,由使用者决定. 下面我们一起来看一下这段代码: 1 (function(){ 2 /* 3 * 说明: 4 * 一周的起始计算方式不同国家有所不同,很多其他国家将周日作为一周的开始 5 * 本代码使用中国习惯,将周一作为每周的开始 6 * 特此说明 7 */ 8 9 func

根据日期计算出周一和周日

http://stackoverflow.com/questions/2821035/c-sharp-get-start-date-and-last-date-based-on-current-date DateTime baseDate = DateTime.Today; var today = baseDate; var yesterday = baseDate.AddDays(-1); var thisWeekStart = baseDate.AddDays(-(int)baseDate.

Linux下生提取一年中的周一和周日

#!/bin/bash ############################## _Green="\033[32;1m" _Red="\033[31;1m" _End="\033[0m" ############################## Server_Lang="`echo "${LANG}"`" Search_Time="`date +%Y%m%d%H%M%S`" ##

java实现的日期计算

这里讲的日期计算比较偏,用到的地方很少(比如获取今天所在周的周一或者周日,获取今天是本月的第几周...),这些方法是以前做项目遗留下来的,现在整理一下,跟大家分享. 工具类主要有一下方法: public static Date getFirstMondayOfMonth(String dateString, String dateFormat) throws Exception 获取指定月份的第一个星期一,比如2014-12 月的第一个周一是2014-12-01 public static in

USACO。s1.1.3Friday the Thirteenth(数组)

题意:计算n年里的12 * n个月里,每个月的13号落在周日到周六的次数. 思路&易错点:两个数组,一个数组1代表月份,一个数组2代表星期几,天数 % 7作为数组2的下标,自增.判断是否为闰年.某年的1月1号是周m,下一年的1月1号是周m + 1(闰年的话就m + 2,这个是开始时错了,找了几百年bug),就可以得到下一年的1月1号代表周几,继续mod. 代码如下: /* TASK:friday LANG:C++ ID:huibaochen */ #include <iostream>

20、任务十七——页面交互功能、实现柱状图

0.题目 参考以下示例代码,原始数据包含几个城市的空气质量指数数据 用户可以选择查看不同的时间粒度,以选择要查看的空气质量指数是以天为粒度还是以周或月为粒度 天:显示每天的空气质量指数 周:以自然周(周一到周日)为粒度,统计一周7天的平均数为这一周的空气质量数值,如果数据中缺少一个自然周的几天,则按剩余天进行计算 月:以自然月为粒度,统一一个月所有天的平均数为这一个月的空气质量数值 用户可以通过select切换城市 通过在"aqi-chart-wrap"里添加DOM,来模拟一个柱状图图

你真的会玩SQL吗?实用函数方汇总

实用函数方法 由于有些知识很少被用到,但真需要用时却忘记了又焦头烂额的到处找. 现在将这些‘冷门“却有效的小知识贡献出来,以备不时之需. 存储过程中的 '''' 相当于数据库中的‘ 单引号 DECLARE @str VARCHAR(100) SET @str='''aaa''' SELECT REPLACE(@str,'''','"') :"aaa" rtrim :使用 LTRIM 删除字符变量中的前导空格 ; RTRIM 删除字符变量中的尾随空格 rtrim(ltrim(s

http协议之缓存

http协议缓存控制 第一次请求时200 ok 第二次请求304 not modified 为修改状态 解释: 在网络上有一些缓存服务器,另外浏览器自身也有缓存功能. 当我们第一次访问某个图片的时候,正常下载图片返回200 ok 基于一个前提-图片不会经常改动,服务器在返回200的时候,还返回该图片的"签名" -- etag (签名可以理解为图片的"指纹") 当浏览器再次访问该图片时,去服务器校验"指纹" 如果图片没有变化,直接使用缓存中的图片,