Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用java获取上一季度的详细信息_Java_Date_Calendar - Fatal编程技术网

如何使用java获取上一季度的详细信息

如何使用java获取上一季度的详细信息,java,date,calendar,Java,Date,Calendar,我已经实现了上一季度的目标,如下所示: Date date = new Date(); Calendar cal = Calendar.getInstance(); cal.setTime(date); int year = cal.get(Calendar.YEAR); int month = cal.get(Calendar.MONTH); int presentQuarter = (month / 3) + 1; int lastQuarter = (presentQuarter - 1)

我已经实现了上一季度的目标,如下所示:

Date date = new Date();
Calendar cal = Calendar.getInstance();
cal.setTime(date);
int year = cal.get(Calendar.YEAR);
int month = cal.get(Calendar.MONTH);
int presentQuarter = (month / 3) + 1;
int lastQuarter = (presentQuarter - 1) > 0 ? presentQuarter - 1 : 4;
我已经得到了最后一个季度,但我将如何得到最后一个季度的年度


有人能帮我吗?

你也可以根据自己的情况来做这件事

year = (presentQuarter - 1) > 0 ? year:year-1;

你也可以用你自己的条件

year = (presentQuarter - 1) > 0 ? year:year-1;

您需要有一个单独的变量来存储季度计算。我想试试下面的方法

int calculatedLastQuarter = presentQuarter - 1;
int lastQuarterYear = (calculatedLastQuater < 0) ? year-1 : year;
int lastQuarter = (presentQuarter < 0) ? 4 : calculatedLastQuater;

您需要有一个单独的变量来存储季度计算。我想试试下面的方法

int calculatedLastQuarter = presentQuarter - 1;
int lastQuarterYear = (calculatedLastQuater < 0) ? year-1 : year;
int lastQuarter = (presentQuarter < 0) ? 4 : calculatedLastQuater;

虽然你可以自己做数学,因为其他答案已经被覆盖了,你可以考虑使用新的日期/时间API。 如果使用java 8,请考虑使用这更容易


如果你使用java

,尽管你可以自己做数学,因为其他答案已经被覆盖了,你可以考虑使用新的日期/时间API。 如果使用java 8,请考虑使用这更容易

如果您使用的是JavaTL;博士 我将如何获得去年最后一个季度的收入

2017年

年季 该项目向java 8及更高版本中内置的java.time类添加了功能

该项目的课程包括四分之一和四分之一。这些季度基于ISO 8601日历,运行于1月至3月,以此类推

获取当前季度

YearQuarter yq = YearQuarter.now( ZoneId.of( "Pacific/Auckland" ) ) ;
打电话给我做数学题

YearQuarter yqPrevious = yq.minusQuarters( 1 ) ;
如果需要,可以提取年度和季度数字。最好在代码库中传递这些YearQuarter对象,而不是仅仅使用int,以获得类型安全性和有效值

int year = yqPrevious.getYear() ;
int q = yqPrevious.getQuarterValue() ;
要序列化为字符串,请调用toString以遵循ISO 8601 formats:yyyy Qq样式的格式生成字符串,尽管该标准实际上没有解决四分之一的问题

String output = yq.toString() ;
…和解析

YearQuarter yq = YearQuarter.parse( "2017-Q1" ) ;
tl;博士 我将如何获得去年最后一个季度的收入

2017年

年季 该项目向java 8及更高版本中内置的java.time类添加了功能

该项目的课程包括四分之一和四分之一。这些季度基于ISO 8601日历,运行于1月至3月,以此类推

获取当前季度

YearQuarter yq = YearQuarter.now( ZoneId.of( "Pacific/Auckland" ) ) ;
打电话给我做数学题

YearQuarter yqPrevious = yq.minusQuarters( 1 ) ;
如果需要,可以提取年度和季度数字。最好在代码库中传递这些YearQuarter对象,而不是仅仅使用int,以获得类型安全性和有效值

int year = yqPrevious.getYear() ;
int q = yqPrevious.getQuarterValue() ;
要序列化为字符串,请调用toString以遵循ISO 8601 formats:yyyy Qq样式的格式生成字符串,尽管该标准实际上没有解决四分之一的问题

String output = yq.toString() ;
…和解析

YearQuarter yq = YearQuarter.parse( "2017-Q1" ) ;

仅供参考,您使用的旧类现在是遗留类,被java.time类取代。@BasilBourque您认为这些遗留类给了我错误的值吗?这不是错误的值,而是使用遗留类和新API有多困难,这使事情变得更容易,当然,自己计算而不是让API为您计算更容易出错。更不用说旧API.FYI中的和了,您使用的是现在遗留的麻烦旧类,被java.time类取代。@BasilBourque您认为这些遗留类给我的值是错误的吗?这不是错误值的情况,而是使用遗留类与新API相比有多困难,这使事情变得更容易,当然,自己做数学而不是让API为您做更容易出错。更不用说旧的API了。