繁体   English   中英

获取年份季度的开始和结束日期

[英]Get start and end dates of years quarters

有谁知道,如何获取一年中各季度的开始和结束日期? 基本上,我需要当前季度和随后三个季度的开始和结束日期。

我有一个下拉菜单,它的日期应动态填充为以下形式:

<select name="quarter-selection">
        <option value="2012-07-01,2012-09-31">Q3 2012</option>
        <option value="2012-10-01,2012-12-31">Q4 2012</option>
        <option value="2013-01-01,2013-03-31">Q1 2013</option>
        <option value="2013-04-01,2013-06-30">Q2 2013</option>
    </select> 

任何帮助,高度赞赏。 thx,弗洛里安

您可以通过以下方法轻松获得它:

$q1 = array(
    'start' => date('Y-m-d', mktime(0, 0, 0, 1, 1, 2012)),
    'end' => date('Y-m-d', mktime(0, 0, 0, 3, date('t', mktime(0, 0, 0, 3, 1, 2012)), 2012))
);
$q2 = array(
    'start' => date('Y-m-d', mktime(0, 0, 0, 4, 1, 2012)),
    'end' => date('Y-m-d', mktime(0, 0, 0, 6, date('t', mktime(0, 0, 0, 3, 1, 2012)), 2012))
);
$q3 = array(
    'start' => date('Y-m-d', mktime(0, 0, 0, 7, 1, 2012)),
    'end' => date('Y-m-d', mktime(0, 0, 0, 9, date('t', mktime(0, 0, 0, 3, 1, 2012)), 2012]))
);
$q4 = array(
    'start' => date('Y-m-d', mktime(0, 0, 0, 10, 1, 2012)),
    'end' => date('Y-m-d', mktime(0, 0, 0, 12, date('t', mktime(0, 0, 0, 3, 1, 2012)), 2012))
);

java.time

现在与java的早期版本捆绑在一起的麻烦的旧日期时间类已由java.time类取代。

三人行

ThreeTen-Extra项目通过附加功能扩展了java.time类。 这包括QuarterYearQuarter类。

YearQuarter

确定季度意味着确定日期。 确定日期意味着指定时区。 在任何给定的时刻,日期都会在全球范围内变化。

ZoneId z = ZoneId.of( "America/Montreal" );
YearQuarter yq = YearQuarter.now( z );

您可以进行数学运算,加法和减法。

YearQuarter yqNext = yq.plusQuarters( 1 );

LocalDate

您可以查询该季度的第一个和最后一个日期,以获取LocalDate对象。 LocalDate类表示没有日期和时区的仅日期值。

LocalDate firstDay = yq.atDay( 1 );
LocalDate lastDay = yq.atEndOfQuarter();

要生成表示标准ISO 8601格式(YYYY-MM-DD)中LocalDate值的字符串,只需调用toString

String output = firstDay.toString();

关于java.time

java.time框架内置于Java 8及更高版本中。 这些类取代了麻烦的旧日期时间类,例如java.util.Date.Calendarjava.text.SimpleDateFormat

现在处于维护模式Joda-Time项目建议迁移到java.time。

要了解更多信息,请参见Oracle教程 并在Stack Overflow中搜索许多示例和说明。

大部分的java.time功能后移植到Java 6和7 ThreeTen,反向移植 ,并进一步适应的AndroidThreeTenABP (见如何使用...... )。

ThreeTen-Extra项目使用其他类扩展了java.time。 该项目为将来可能在java.time中添加内容提供了一个试验场。 您可能会在这里找到一些有用的类,例如IntervalYearWeekYearQuarter等。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM