我们的财政年度从每年的4月1日开始。因此,本财政年度是2011年4月1日。
无论当前日期是什么,我如何获得此日期?
例如,今天是2011-06-24,我该如何回归2011-04-30。
如果今天是2012-02-05,我仍然需要它返回2011-04-30。但是,如果今天是2012-07-06,则应该返回2012-04-30。
基本上,财务日期的年份不应该改变到当前年份,直到达到5月1日。
即。一些例子
2011-03-05 = 2010-04-30
2011-04-06 = 2011-04-30
2010-01-15 = 2009-04-30
2015-09-01 = 2015-04-30
2020-12-25 = 2020-04-30
2021-02-26 = 2020-04-30
答案 0 :(得分:4)
没有内置功能,但是很容易自己构建:
答案 1 :(得分:3)
您可以简单地使用静态方法:
public static GetStartOfFinancialYear() {
DateTime startOfYear = new DateTime( Datetime.UtcNow.Year, 4, 30 );
return
DateTime.UtcNow < startOfYear ?
startOfYear.AddYears(-1) : startOfYear;
}
VB中的
public shared Function GetStartOfFinancialYear() As DateTime
Dim startOfYear As New DateTime(DateTime.Now.Year, 4, 30)
If DateTime.UtcNow < startOfYear Then
return startOfYear.AddYears(-1)
Else
return startOfYear
End If
End Function
答案 2 :(得分:1)
使用:
Dim dateTime__1 As New DateTime(DateTime.Now.AddMonths(-4).Year, 4, 30)
答案 3 :(得分:0)
Time Period Library for .NET包括年类,并支持财政时间段。
您可以使用自定义年度基准月定义会计时间日历。以下示例使用10月作为会计年度的开始:
// ------------------------------------------------------------------------
public class FiscalTimeCalendar : TimeCalendar
{
// ----------------------------------------------------------------------
public FiscalTimeCalendar() :
base( new TimeCalendarConfig
{
YearBaseMonth = YearMonth.October, // October year base month
YearWeekType = YearWeekType.Iso8601, // ISO 8601 week numbering
YearType = YearType.FiscalYear// treat years as fiscal years
} )
{
} // FiscalTimeCalendar
} // class FiscalTimeCalendar
这就是用法: 崩
// ----------------------------------------------------------------------
public void FiscalYearSample()
{
FiscalTimeCalendar calendar = new FiscalTimeCalendar(); // use fiscal periods
DateTime moment1 = new DateTime( 2006, 9, 30 );
Console.WriteLine( "Fiscal Year of {0}: {1}", moment1.ToShortDateString(),
new Year( moment1, calendar ).YearName );
// > Fiscal Year of 30.09.2006: FY2005
Console.WriteLine( "Fiscal Quarter of {0}: {1}", moment1.ToShortDateString(),
new Quarter( moment1, calendar ).QuarterOfYearName );
// > Fiscal Quarter of 30.09.2006: FQ4 2005
DateTime moment2 = new DateTime( 2006, 10, 1 );
Console.WriteLine( "Fiscal Year of {0}: {1}", moment2.ToShortDateString(),
new Year( moment2, calendar ).YearName );
// > Fiscal Year of 01.10.2006: FY2006
Console.WriteLine( "Fiscal Quarter of {0}: {1}", moment1.ToShortDateString(),
new Quarter( moment2, calendar ).QuarterOfYearName );
// > Fiscal Quarter of 30.09.2006: FQ1 2006
} // FiscalYearSample
图书馆还包括半年和季度类,并支持财政时间段。