如何检查日期是否在某个星期或季度
问题描述:
我需要一个java逻辑来检查某个日期(让我们假设18-04-2017)是否落在当前的一周。 我们还有一年4季度 (一月,二月,三月) - 一季度 (四月,五月,六月) - 二季度 因此,我需要知道这个相同的日期是否落在当前季度。 欢迎任何答复如何检查日期是否在某个星期或季度
答
我会说做这些步骤,
1 - 找出第一个和最后一周 Get current week start and end date in Java - (MONDAY TO SUNDAY)
2日 - 检查日期是范围还是痛苦落在 Java: how do I check if a Date is within a certain range? - 如果是,它落在 一周 - 如果没有,它不
3 - 做宿舍一样,有开始和结束日期,并检查日期在betwe无论他们是否
//import java.util.*;
//import java.text.*;
public static void main(String[] args) {
try {
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
Date dateToTest = sdf.parse("18/04/2017");
//lets assume the date source is a variable, hence extract year off of it
String firstDateInString = "01/04/" + Integer.toString(getYear(dateToTest));
String secondDateInString = "01/07/" + Integer.toString(getYear(dateToTest));
String thirdDateInString = "01/10/" + Integer.toString(getYear(dateToTest));
Date firstDate = sdf.parse(firstDateInString);
Date secondDate = sdf.parse(secondDateInString);
Date thirdDate = sdf.parse(thirdDateInString);
//check if in first quarter
//if date is before April it has to be first Q
if (dateToTest.before(firstDate)) {
System.out.println("First Quarter");
return;
}
//check if in second quarter
//if date is before August it has to be first Q
if (dateToTest.before(secondDate)) {
System.out.println("Second Quarter");
return;
}
//check if in 3rd quarter
//if date is before August it has to be first Q
if (dateToTest.before(thirdDate)) {
System.out.println("third Quarter");
return;
}
//well then the date must be in 4th quarter
System.out.println("Fourth quarter");
} catch (Exception err) {
System.out.println(err);
}
}
private static int getYear(Date date) {
Calendar cal = Calendar.getInstance();
cal.setTime(date);
return cal.get(Calendar.YEAR);
}
免责声明:此代码不是最佳方法。请注意,这里我不假定当前的日期或年份。这里的目的是仅显示一般策略。
你有试过什么吗? – tnw
不应该被关闭为“太宽泛”,因为它非常具体。但是它应该作为许多问题的重复来关闭,如果某个日期处于一个范围之内,那么这个问题就会在测试中出现。提示:'org.threeten.extra.YearQuarter :: atDay'和':: atEndOfQuarter'。 –