【问题标题】:How to check if a Date falls in a certain week or Quarter [closed]如何检查日期是否在某个星期或某个季度[关闭]
【发布时间】:2017-04-19 07:29:42
【问题描述】:

我需要一个 Java 逻辑来检查某个日期(假设 2017 年 4 月 18 日)是否在本周。 此外,我们一年有 4 个季度 (一月、二月、三月) - 第一季度 (四月、五月、六月) - 2Q 所以我需要知道同一日期是否在当前季度。 将不胜感激任何回复

【问题讨论】:

  • 你有没有尝试过?
  • 不应该因为“太宽泛”而被关闭,因为它非常具体。但是,如果日期在某个范围内,它应该作为许多季度问题和许多测试问题的副本关闭。提示:org.threeten.extra.YearQuarter::atDay::atEndOfQuarter

标签: java


【解决方案1】:

我会说做这些步骤,

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 - 对季度做同样的事情,有开始和结束日期,并检查日期是否在它们之间

   //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);

}

免责声明:此代码不是最佳方法。请注意,这里我不假设当前日期或年份。此处的目的仅是展示一般策略。

【讨论】:

  • 谢谢..实现了一周..现在需要找出季度的方法...
  • 嗨@shahed,请查看更新后的答案以获取示例。请注意,该示例不会直接回答您的问题。您仍然需要做一些工作来检查当年的季度。我希望它有帮助:)
  • 我认为这可以达到目的..非常感谢 Samip 先生.. 我会尽力给你反馈
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-07-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多