我的日期是一周工作日(星期一到星期五)。例如,我所拥有的日期是06-07-2016(周三)。它可以是周一至周五的任何一天。我希望得到那个星期六(02-07-2016)那天的日期。我怎么能实现这个目标呢?
答案 0 :(得分:2)
使用java 8流利的日期/时间类:
LocalDate inputDate = ...
LocalDate prevSat = inputDate.with(TemporalAdjusters.previous(DayOfWeek.SATURDAY));
答案 1 :(得分:0)
试试这个:
Calendar cal=Calendar.getInstance();
cal.add( Calendar.DAY_OF_WEEK, - cal.get(Calendar.DAY_OF_WEEK));
System.out.println(cal.get(Calendar.DATE));
答案 2 :(得分:0)
下面。 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;
}
}