C#将4月1日设置为年初

时间:2018-08-16 15:56:28

标签: c#

我目前正在开发一个将数据添加到SQL表的应用程序。

该表中的一个字段用于会计年度,格式为YYYYMM(例如,2018年8月为201805)。添加行时,我需要自动设置此设置,因为我们不能依赖用户输入正确的格式。

有什么方法可以将DateTime设置为从4月1日(财政年度的第一天)开始的一年,还是我必须对问题进行编码。

3 个答案:

答案 0 :(得分:1)

感谢所有答案,它们确实帮助我解决了问题。

我最终得到了一个我可能应该首先想到的非常简单的解决方案。

string period = DateTime.Now.AddMonths(-3).ToString("yyyyMM");

答案 1 :(得分:0)

您可以使用以下代码来获取所需财政年度的开始。

    var year = DateTime.Now.Year;
    DateTime firstDay;
    if(DateTime.Now.Month <= 4)
       firstDay = new DateTime(year-1, 4, 1);
    else
       firstDay = new DateTime(year, 4, 1);

似乎没有一种自动执行此操作的方法,但看起来很简单。

答案 2 :(得分:0)

您想要的是一个varchar(或nvarchar)列,其默认值类似于:

     (format(dateadd(month,(-4),getdate()),''yyyyMM'',''en-US'')) 

但是,SQL Server似乎不喜欢将默认值的三个函数嵌套在一起(两个函数看起来不错,但是可以打上三个函数)。相反,您可以拥有一个Date类型的列,其默认值为:

     (dateadd(month,(-4),getdate()))

这似乎可行,但这是4个月前的日期。然后只要显示它就正确格式化即可。