【问题标题】:check date for variable value检查变量值的日期
【发布时间】:2010-03-31 15:53:09
【问题描述】:

我的 Java 类中有一个变量,需要根据今天是在 7 月 1 日之前还是之后进行设置。如果今天在 7 月 1 日之前,那么我们就在本年度的财政年度(所以今天我们在 2010 财年)。如果今天是 7 月 1 日之后,我们的新财年已经开始,变量需要是下一年(所以 FY11)。

伪代码:

if today < 7/1/anyyear then
  BudgetCode = "1" + thisYear(YY)  //variable will be 110
else
  BudgetCode = "1" + nextYear(YY)  //variable will be 111

谢谢!

【问题讨论】:

  • 7 月 1 日是 7 月 1 日,对吧?还是1月7日?这一天是以 UTC 还是您的时区开始的?
  • 是的 7 月 1 日...在我们的时区...谢谢!

标签: java date comparison


【解决方案1】:
Calendar cal = Calendar.getInstance();
cal.set(Calendar.MONTH, Calendar.JULY);
cal.set(Calendar.DATE, 1);

if (cal.after(someDate)) {
  fy = cal.get(Calendar.YEAR) + 1;
}
else {
  fy = cal.get(Calendar.YEAR);
}

【讨论】:

  • 有没有办法只得到 2 位数的年份而不是 4 位数的年份?我只需要 10 或 11 而不是 2010 或 2011,谢谢
  • 一种方法是取模运算符,例如:int twoDigitFy = fy % 100;
【解决方案2】:

我认为 if 语句将是这样来获取 2 位数年份,其前端有“1”位数。

if (cal.after(someDate)) {
  BudgetCode = "1".concat(new Integer(cal.get(Calendar.YEAR)%100).toString());
}
else {
  BudgetCode = "1".concat(new Integer(cal.get(Calendar.YEAR)%100).toString());
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-06-16
    • 1970-01-01
    • 1970-01-01
    • 2018-09-28
    • 1970-01-01
    • 1970-01-01
    • 2018-01-18
    • 2021-09-19
    相关资源
    最近更新 更多