给定指定的日期返回这个日期一周的周一日期和周末日期

public void test(){
 		/**日期格式*/
        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
		String StartTime = "2020-06-01";
	  	String[] strings = this.addDay(0, dateFormat.parse(StartTime));

        System.out.println("start"+strings[0]);
        System.out.println("end"+strings[1]);
}
 //获取当前周 时间
    public String[] addDay(int nn,Date data) {
        String arr[]=new  String[2] ;
        Calendar cal = Calendar.getInstance();
        //int nn = 1;
        cal.setTime(data);
        String monday;
        cal.add(Calendar.DATE, nn*7);

        System.out.println(Calendar.DATE);
        System.out.println(cal);


        //想周几,这里就传几Calendar.MONDAY(TUESDAY...)
        cal.set(Calendar.DAY_OF_WEEK,Calendar.MONDAY);
        monday = new SimpleDateFormat("yyyy-MM-dd").format(cal.getTime());
        //System.out.println(monday);
        //赋值
        arr[0]=monday;
        String s=monday;
        //一周7天
        int n=6;
        try {
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
            Calendar cd = Calendar.getInstance();
            cd.setTime(sdf.parse(s));
            cd.add(Calendar.DATE, n);//增加一天
            //cd.add(Calendar.MONTH, n);//增加一个月
            //赋值
            arr[1] = sdf.format(cd.getTime());

        } catch (Exception e) {

        }
        return arr;
    }

结果:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
判断两个日期是否在同一,可以根据ISO8601标准来计算。该标准定义了一的第一天为周一,最后一天为日,一年中的第一个完整必须满足以下条件: 1. 它的第一天必须是该年的第一天或者该年的第一个周一 2. 它包含的天数必须大于等于4天 以此类推,每个的起始日期为该周一,终止日期为该日。因此,我们可以按照以下步骤判断两个日期是否在同一内: 1. 计算两个日期是当年的第几天(dayOfYear) 2. 计算出两个日期所在周一日期(monday1, monday2),公式为: monday = date - (date.getDayOfWeek() - 1) 3. 判断两个日期所在周一是否相同,如果不同,则它们不在同一 4. 如果两个日期所在周一相同,则判断它们距离周一的天数是否都小于7天,如果都小于7天,则它们在同一,否则它们不在同一。 以下是Java实现的代码示例: ```java import java.time.LocalDate; import java.time.temporal.ChronoUnit; public class DateUtils { public static boolean isSameWeek(LocalDate date1, LocalDate date2) { // 计算两个日期是当年的第几天 int dayOfYear1 = date1.getDayOfYear(); int dayOfYear2 = date2.getDayOfYear(); // 计算出两个日期所在周一 LocalDate monday1 = date1.minusDays(date1.getDayOfWeek().getValue() - 1); LocalDate monday2 = date2.minusDays(date2.getDayOfWeek().getValue() - 1); // 判断两个日期所在周一是否相同 if (!monday1.equals(monday2)) { return false; } // 判断两个日期距离周一的天数是否都小于7天 return Math.abs(dayOfYear1 - monday1.getDayOfYear()) < 7 && Math.abs(dayOfYear2 - monday2.getDayOfYear()) < 7; } } ``` 其中,date1和date2为两个LocalDate对象,返回值为布尔类型,表示它们是否在同一内。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值