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日历中获取指定周的星期六日期? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
js实现日历可获得指定日期周数及星期几示例分享(js获取星期几)
js实现日历可获得指定日期周数及星期几示例分享(js获取星期几)