首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何根据当前日期在C#中获取财政年度的开始和结束?-使用SSIS脚本任务

如何根据当前日期在C#中获取财政年度的开始和结束?-使用SSIS脚本任务
EN

Stack Overflow用户
提问于 2022-08-19 17:37:25
回答 1查看 51关注 0票数 0

我创建了一个SSIS包,用于读取现有文件,并根据文件名和工作表进行更改/移动。我有一个C#脚本任务,这是一个同事编写的,它是为财政年度的开始和结束手动更新的;然而,我们还有其他人使用这个包,所以我想自动化财政年度的日期。

如何根据今天的日期获得当前财政年度的开始日期和结束日期?

我确实找到了Working out start of financial yearHow to discover financial Year based on current datetime?,然而,我似乎无法得到最重要的答案。我使用的是Microsoft.Office.Interop.Excel的引用/名称空间,但我不确定这是否有区别。

2021年财政年度为09/01/2020至08/31/2021

  • Fiscal年2022年为09/01/2021年至2021年08/31/2022

  • Fiscal财政年度为09/01/2022年至08/31/ 2023

今天是2022年8月19日,当前财政年度是09/01/2021 - 08/31/2022,但当我们到达09/01/2022,将改为09/01/2022 - 08/31/2023。

这就是我现在使用的,多次调用FYStart和FYEnd。

代码语言:javascript
复制
public partial class ScriptMain : Microsoft.SqlServer.Dts.Tasks.ScriptTask.VSTARTScriptObjectModelBase
{ 
    public void Main()
    {

       //Update Fiscal Year Here (YYY, MM, DD): 
       DateTime FYStart = new DateTime(2021, 09, 01);
       DateTime FYEnd = new DateTime(2022, 08, 31);
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-08-19 17:50:34

听起来你是在说,如果当月少于9,那么财政年度就从前一年开始。否则今年就开始了。

如果是这样,则可以在代码中通过以下方式表示:

代码语言:javascript
复制
public static int GetFinancialYearStart(DateTime input)
{
    return input.Month < 9 ? input.Year - 1 : input.Year;
}

然后,我们只需调用此方法来设置开始日期和结束日期::

代码语言:javascript
复制
int fyStartYear = GetFinancialYear(DateTime.Now);
DateTime fyStart = new DateTime(fyStartYear, 09, 01);
DateTime fyEnd = new DateTime(fyStartYear + 1, 08, 31);

或者缩短的版本:

代码语言:javascript
复制
var fyStart = new DateTime(GetFinancialYear(DateTime.Today), 09, 01);
var fyEnd = fyStart.AddYears(1).AddDays(-1);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73420408

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档