JS计算日期,知道当前日期,找到上周的日期(上周五和上上周六)
来源:互联网 发布:分布式数据采集系统 编辑:程序博客网 时间:2024/05/17 09:44
var currentDate = new Date();
var currYear = currentDate.getFullYear();//上上周六
var currYear_2 = currentDate.getFullYear();//上周五
var currMonth = currentDate.getMonth();//上上周六
var currMonth_2 = currentDate.getMonth();//上周五
var currDate = currentDate.getDate();
var currDay = currentDate.getDay(); //星期日为0
var endDate = new Date(currYear,currMonth,currDate);
//正常情况
var preWeekFriday = currDate+(1-(3+currDay));
var preWeekSaturday = currDate+(1-(9+currDay));
var preMonthDays = getLastDay(currYear,currMonth);
//如果是0,则该月为一月
if(currMonth<=0 && preWeekSaturday<=0){
preMonthDays = getLastDay(currYear-1,12);
currYear--;
currMonth = 12;
}
if(currDate>=1 && currDate<6){
if(currMonth!=0){
currMonth = currMonth-1;
currMonth_2 = currMonth_2-1;
}
}else if(currDate>=6 && currDate<=12){
if(currMonth!=0){
currMonth = currMonth-1;
}
}
currMonth = currMonth+1;
currMonth_2 = currMonth_2+1;
if(currMonth_2==0){
currMonth_2 = 12;
currYear_2 = currYear;
}
currMonth = currMonth<10?"0"+currMonth:currMonth;
currMonth_2 = currMonth_2<10?"0"+currMonth_2:currMonth_2;
preWeekFriday = preWeekFriday<=0?preWeekFriday+preMonthDays:preWeekFriday;
preWeekSaturday = preWeekSaturday<=0?preWeekSaturday+preMonthDays:preWeekSaturday;
var lastSaturday = currYear+"-"+currMonth+"-"+preWeekSaturday;
var lastFriday = currYear_2+"-"+currMonth_2+"-"+preWeekFriday;
document.getElementById("beginDate").value = lastSaturday;
document.getElementById("endDate").value = lastFriday;
}
//是否为闰年
function isLeapYear(y) {
var isLeap = false;
if(y%4==0 && y%100!=0 || y%400==0) {
isLeap = true;
}
return isLeap;
}
//每月最后一天
function getLastDay(y,m) {
var lastDay = 28;
// m++; 计算当前月的前一个月,所以不用加1
if(m==1 || m==3 || m==5 || m==7 || m==8 || m==10 || m==12) {
lastDay = 31;
}
else if(m==4 || m==6 || m==9 || m==11) {
lastDay = 30;
}
else if(isLeapYear(y)==true) {
lastDay = 29;
}
return lastDay;
}
解释:
var preWeekFriday = currDate+(1-(3+currDay)); //计算上周五是几号
var preWeekSaturday = currDate+(1-(9+currDay));//计算上上周六是几号
星期几 上周五(差几天) 上上周六(差几天)
星期一 -2 -8
星期二 -3 -9
星期三 -4 -10
星期四 -5 -11
星期五 -6 -12
星期六 -7 -13
星期日 -8 -14
得出如下:
星期一 1-(3+0) 1-(9+0)
星期二 1-(3+1) 1-(9+1)
依次类推……
判断是否跨月的问题:
如果 当前日期>=1 并且 当前日期<6 则求出来的上周五的月份与上上周六的月份均 减1
如果 当前日期>=6 ,那么只将上上周六的月份-1
- JS计算日期,知道当前日期,找到上周的日期(上周五和上上周六)
- java 根据当前日期获取本周或上周日期区间
- java 根据当前日期获取本周或上周日期区间
- php取上月(上周,上上周,本周)日期
- JS获取任意日期(昨天,今天,明天,上周...)
- 需要上周 周一到周日的日期
- PHP-获取上周一周的日期
- java获取上周所有日期
- php 获取日期 上周 上月
- 获取上月、上年、本月、本周、上周、指定年指定周、的开始日期和结束日期
- 根据当前系统日期求出本周,本月,本年,上周,上月,上年的第一天
- java 根据当前日期获取本周或上周或下周日期区间
- 关于js中获得某一天的昨天以及上周一天的日期使用问题
- js 获取 本周、上周、本月、上月、本季度、上季度的开始结束日期
- js 获取 本周、上周、本月、上月、本季度、上季度的开始结束日期
- Oracle 取上周一到周末日期的查询语句
- Oracle取上周一到周末日期的查询语句
- Oracle取上周一到周末日期的查询语句
- C++中的static关键字
- Appium IOS 自动化测试
- iOS应用程序的执行周期
- RESTful web service study
- android调camera api预览
- JS计算日期,知道当前日期,找到上周的日期(上周五和上上周六)
- 第三方类库
- 灵活控制 Hibernate 的日志或 SQL 输出,以便于诊断 .
- document.execCommand()
- vector&String的适当容量
- No getter method for property * of bean * 解决办法
- PHP编译过程中常见错误信息的解决方法
- Linux kernel config and makefile system
- 关于不正常地定义参数对象。提供了不一致或不完整的信息或者MySQL server has gone away的问题总结