java获取本周日_java获取本周 上周的所有日期

本文介绍了Java编程中获取当前日期所在周的周一和周日日期,以及上周的周一和周日日期的方法。通过Calendar类进行日期计算,实现对日期的增减和判断,从而获取所需日期区间。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1 根据当前日期获得所在周的日期区间(周一和周日日期)

public String getTimeInterval(Date date) {

Calendar cal = Calendar.getInstance();

cal.setTime(date);

// 判断要计算的日期是否是周日,如果是则减一天计算周六的,否则会出问题,计算到下一周去了

int dayWeek = cal.get(Calendar.DAY_OF_WEEK);// 获得当前日期是一个星期的第几天

if (1 == dayWeek) {

cal.add(Calendar.DAY_OF_MONTH, -1);

}

// System.out.println("要计算日期为:" + sdf.format(cal.getTime())); // 输出要计算日期

// 设置一个星期的第一天,按中国的习惯一个星期的第一天是星期一

cal.setFirstDayOfWeek(Calendar.MONDAY);

// 获得当前日期是一个星期的第几天

int day = cal.get(Calendar.DAY_OF_WEEK);

// 根据日历的规则,给当前日期减去星期几与一个星期第一天的差值

cal.add(Calendar.DATE, cal.getFirstDayOfWeek() - day);

String imptimeBegin = sdf.format(cal.getTime());

// System.out.println("所在周星期一的日期:" + imptimeBegin);

cal.add(Calendar.DATE, 6);

String imptimeEnd = sdf.format(cal.getTime());

// System.out.println("所在周星期日的日期:" + imptimeEnd);

return imptimeBegin + "," + imptimeEnd;

}

2 根据当前日期获得上周的日期区间(上周周一和周日日期)

public String getLastTimeInterval() {

Calendar calendar1 = Calendar.getInstance();

Calendar calendar2 = Calendar.getInstance();

int dayOfWeek = calendar1.get(Calendar.DAY_OF_WEEK) - 1;

int offset1 = 1 - dayOfWeek;

int offset2 = 7 - dayOfWeek;

calendar1.add(Calendar.DATE, offset1 - 7);

calendar2.add(Calendar.DATE, offset2 - 7);

// System.out.println(sdf.format(calendar1.getTime()));// last Monday

String lastBeginDate = sdf.format(calendar1.getTime());

// System.out.println(sdf.format(calendar2.getTime()));// last Sunday

String lastEndDate = sdf.format(calendar2.getTime());

return lastBeginDate + "," + lastEndDate;

}

3  获取一周开始到结束的list集合

public static List findDates(Date dBegin, Date dEnd)

{

List lDate = new ArrayList();

lDate.add(dBegin);

Calendar calBegin = Calendar.getInstance();

// 使用给定的 Date 设置此 Calendar 的时间

calBegin.setTime(dBegin);

Calendar calEnd = Calendar.getInstance();

// 使用给定的 Date 设置此 Calendar 的时间

calEnd.setTime(dEnd);

// 测试此日期是否在指定日期之后

while (dEnd.after(calBegin.getTime()))

{

// 根据日历的规则,为给定的日历字段添加或减去指定的时间量

calBegin.add(Calendar.DAY_OF_MONTH, 1);

lDate.add(calBegin.getTime());

}

return lDate;

}

4 测试

public class Text{

public statis void main(string args[]){

String yz_time=getTimeInterval(new Date());//获取本周时间

String array[]=yz_time.split(",");

String start_time=array[0];//本周第一天

String end_time=array[1]; //本周最后一天

//格式化日期

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");

Date dBegin = sdf.parse(start_time);

Date dEnd = sdf.parse(end_time);

List lDate = findDates(dBegin, dEnd);//获取这周所有date

for (Date date : lDate)

{

System.out.println(sdf.format(date));

}

}

}

[Java] 获取本月周次和日期时间段信息

package com.wdcloud.monitoring.common; import java.text.SimpleDateFormat; import java.util.ArrayList ...

JAVA获取本周 本月 本年 第一天和最后一天

/** * 日期工具类 */ public class DateUtils { /** * 获取今天 * @return String * */ public static String getTod ...

Asp.net C# 获取本周上周本月上月本年上年第一天最后一天时间大全

DateTime dt = DateTime.Now; int weeknow = Convert.ToInt32(DateTime.Now.DayOfWeek); ) * weeknow + ; D ...

java获取下一天的日期

我们来看看Java怎么获取下一天的日期: 哈哈哈,开玩笑啦,这个只是个段子. "哪怕悲伤有1000种,快乐有1种就够了."

用php获取本周,上周,本月,上月,本季度日期的代码

echo date("Ymd",strtotime("now")), "\n"; echo date("Ymd",str ...

Java -- 获取当前日期、当月月初日期、月末日期

Learn From:http://blog.youkuaiyun.com/sunhuwh/article/details/39161323 public class CalendarTest { public ...

java获取近几天的日期

最近在写接口的时候老遇见从mysql中获取近几天数据的需求,获取日期这块不是很熟,网上看了很多但是代码量都太大,还是问了下别人,写了三行代码就解决了,不多说 贴代码了 下面是我获取近十天,每天的日期: ...

java获取时间段内的所有日期

public static void main(String[] args) {        SimpleDateFormat dateFormat = new SimpleDateForm ...

js获取本周、上周的开始结束时间

这两天在做一个报表体统,其中涉及到了一个根据本周,上周,本月,上月的时间来进行查询的问题,在这个我就教一下大家怎么实现,大家如果有更好的实现方法的,我也希望大家能说出来,我们交流交流. 首先呢,我写了 ...

随机推荐

SQL Server Integration Services(SSIS) 包配置与部署

SSIS配置此处的配置方式,主要针对到正式服务器上要修改服务器名,和连接服务器等配置注意:1. 包配置在windows2008上生成后,在windows2003上mysql的配置无法使用,总是报错连接 ...

wp加载本地HTML(附带图片,CSS,JS)

wp加载本地HTML(附带图片,CSS,JS) Windows Phone:Load Local HTML with Img,Css,Js by 唐小崇 http://www.cnblogs.com/ ...

Linux less命令详解

less 在Linux下查看文件内容的命令大致有以下几种: cat 由第一行开始显示内容,并将所有内容输出 tac 从最后一行倒序显示内容,并将所有内容输出 more 根据窗口大小,一页一页的现实文件 ...

hadoop的master和slave模式

hadoop的集群是基于master/slave模式. namenode和jobtracker属于master,datanode和tasktracker属于slave,master只有一个,而slav ...

SQL语言基础学习

9.26.对之前学习的知识进行一下梳理,同时结合所查资料对知识进行一次整合

centos6.7用yum安装redis解决办法及IP限制配置

在centos6.7用yum安装redis解决办法 - bluesky1 - 博客园 http://www.cnblogs.com/lanblogs/p/6104834.html yum instal ...

asp.net webapi 返回json结果的方法

第一种: public static void Register(HttpConfiguration config) { //1.将默认的xml格式化程序清除 GlobalConfiguration. ...

Oracle之RMAN备份恢复1-基础篇

1,rman的作用与体系架构 1.1 什么是rman rman(recovery manager)是oracle8i以后dba的一重要工具一般位于$oracle_home/bin目录下,主要用来备份, ...

转asp.net中的App_GlobalResources和App_LocalResources使用

asp.net中的App_GlobalResources和App_LocalResources使用 App_GlobalResources是全局资源文件夹,主要存放一些所有页面都需要用到的信息.App ...

[转]Android 如何根据网络地址获取网络图片方法

http://blog.youkuaiyun.com/xiazdong/article/details/7724103 目录(?)[-] h2pre namecode classhtml stylefont-we ...

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值