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

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

【问题讨论】:

标签: java date


【解决方案1】:

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

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

【讨论】:

【解决方案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;
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-12
      • 2018-06-12
      • 2011-06-26
      • 2018-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多