ven*_*kat 6 c# regex linq asp.net .net-3.5
我需要一个基于当前或今天的日期时间的财政年度.
假设如果我们考虑今天的日期是10 April 2011,那么我需要输出,因为Financial Year 2012在某些情况下我需要以短格式显示相同的输出FY12.我希望展示的两种方式.
在我们的要求中,考虑的财务年度是April(当前年度)到March(下一年度).
基于当前日期时间...输出的情况取决于当前日期时间落在下述所述时段或持续时间内.
From 01April2011 to 31March2012 - Financial Year 2012 or FY2012
From 01April2012 to 31March2013 - Financial Year 2013 or FY2013
From 01April2013 to 31March2014 - Financial Year 2014 or FY2014
.
.
.
Run Code Online (Sandbox Code Playgroud)
等......
另一个例子:如果我们把今天的日期时间为16April2012,则输出需要为 Financial Year 2013也FY13.
请使用C#,. Net3.5中的LINQ或Regex帮助如何以非常短的格式实现相同的目标
Rus*_*Cam 16
几种扩展方法
public static class DateTimeExtensions
{
public static string ToFinancialYear(this DateTime dateTime)
{
return "Financial Year " + (dateTime.Month >= 4 ? dateTime.Year + 1 : dateTime.Year);
}
public static string ToFinancialYearShort(this DateTime dateTime)
{
return "FY" + (dateTime.Month >= 4 ? dateTime.AddYears(1).ToString("yy") : dateTime.ToString("yy"));
}
}
Run Code Online (Sandbox Code Playgroud)
我通过创建一个FinancialYear类来完成之前的工作:
public class FinancialYear
{
int yearNumber;
private static readonly int firstMonthInYear = 4;
public static FinancialYear Current
{
get { return new FinancialYear(DateTime.Today); }
}
public FinancialYear(DateTime forDate)
{
if (forDate.Month < firstMonthInYear) {
yearNumber = forDate.Year + 1;
}
else {
yearNumber = forDate.Year;
}
}
public override string ToString() {
return yearNumber.ToString();
}
}
Run Code Online (Sandbox Code Playgroud)
其他要点: