java - 如何从Java日历中获取指定周的星期六日期? [关闭]

Posted

技术标签:

【中文标题】java - 如何从Java日历中获取指定周的星期六日期? [关闭]【英文标题】:How to get Saturday date from Calendar in java for a specified week? [closed] 【发布时间】:2016-11-28 19:22:07 【问题描述】:

我有一个工作日的日期(周一至周五)。例如,我拥有的日期是 06-07-2016(星期三)。可以是周一到周五的任何一天。我想获得该日期的上一个星期六(02-07-2016)日期。我怎样才能做到这一点?

【问题讨论】:

我真的不知道如何得到这个 请阅读How to Ask。 说真的,一个2K声望的人;你希望这样的问题会飞吗? Is there a good way to get the date of the coming Wednesday?的可能重复 How to get the last Sunday before current date?的可能重复 【参考方案1】:

使用 java 8 流利的日期/时间类:

LocalDate inputDate = ...
LocalDate prevSat = inputDate.with(TemporalAdjusters.previous(DayOfWeek.SATURDAY));

【讨论】:

我设置的日期可以是过去日期也可以不是当前日期 给你....有那么难吗?? @seethalakshmi,检查 LocalDate 的文档以操纵过去、现在或未来的日期。 docs.oracle.com/javase/8/docs/api/java/time/LocalDate.html 谢谢@sharonbn ..它正在工作【参考方案2】:

试试这个:

Calendar cal=Calendar.getInstance();
cal.add( Calendar.DAY_OF_WEEK, - cal.get(Calendar.DAY_OF_WEEK)); 
System.out.println(cal.get(Calendar.DATE));

【讨论】:

【参考方案3】:

这里。 2个工作解决方案。我首先计算到上周六过去了多少天,然后我正在制作新的日期,在该日期中我减去从方法中获得的数字。这给了我们上周六的确切日期。第二种解决方案更简单,它使用 Java 8 特性。

import java.time.DayOfWeek;
import java.time.LocalDate;
import java.time.temporal.TemporalAdjuster;
import java.time.temporal.TemporalAdjusters;
import java.util.Calendar;
import java.util.Date;
import java.util.Locale;

public class CalendarSat 

    public static void main(String[] args) 
        Date date = new Date();
        date.setDate(date.getDate()-lastSut(date.getDay()));
        System.out.println("Custom solution with method: " + date);

        LocalDate inputDate = LocalDate.now();
        LocalDate prevSat = inputDate.with(TemporalAdjusters.previous(DayOfWeek.SATURDAY));
        System.out.println("Java 8 solution: " + prevSat);

    

    public static int lastSut(int currentDay) 
        int toRet = 0;
        int num = 6;
        for(int i = 0; i<7;i++) 
            if(num==currentDay) 
                toRet=i;
            
            if(currentDay==0)
                currentDay=7;
            currentDay--;       
               
        return toRet;
    

【讨论】:

以上是关于java - 如何从Java日历中获取指定周的星期六日期? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

从当前日期获取星期几并指定星期几

cal - 显示一个日历

js实现日历可获得指定日期周数及星期几示例分享(js获取星期几)

js实现日历可获得指定日期周数及星期几示例分享(js获取星期几)

如何在laravel的全日历包中更改一周的开始日期? [关闭]

java中如何获取日期时间中的星期几?