生成日期,周,月,季度,年,财年关系表

declare @date datetime
      , @hour int
      , @min int
      , @fiscalyear int

    set @date = '1/1/2006'
    set @hour = 0
    set @min = 0

while (@date <= '1/1/2020') begin
    set @fiscalyear = (datepart(year,dateadd(month,(6),@date)))
   
    insert into SearchDate (DateID
        , Date
        , DayOfWeekNumber
        , DayOfWeekName
        , WeekNumber
        , DayOfMonthNumber
        , MonthNumber
        , MonthName
        , QuarterNumber
        , YearNumber
        , FisalQuarterNumber
        , FisalYearName)   
    values ((((10000)*datepart(year,@date)+(100)*datepart(month,@date))+datepart(day,@date))
   , @date
   , datepart(weekday,@date)
   , datename(weekday,@date)
   , (datepart(week,@date))
   , (datepart(day,@date))
   , (datepart(month,@date))
   , datename(month, @date)
   , (datepart(quarter, @date))
   , (datepart (year, @date))
   , (datepart(quarter,dateadd(quarter,(2),@date)))
   , 'FY' + substring(CONVERT(nvarchar, @fiscalyear), 3, 2))
  
    set @date = dateadd(day, 1, @date)
end

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以使用Java的Calendar类来计算起始日期与截止日期之间的半数。具体实现步骤如下: 1. 创建两个Calendar对象,分别示起始日期和截止日期。 2. 计算起始日期和截止日期份和份。 3. 根据份和份计算出起始日期和截止日期所在的半。 4. 计算起始日期所在半到截止日期所在半之间的半数。 下面是一个示例代码: ```java import java.util.Calendar; import java.util.Date; public class Main { public static void main(String[] args) { // 创建起始日期和截止日期的Calendar对象 Calendar startCalendar = Calendar.getInstance(); startCalendar.setTime(new Date("2021/01/01")); Calendar endCalendar = Calendar.getInstance(); endCalendar.setTime(new Date("2021/12/31")); // 计算起始日期和截止日期份和份 int startYear = startCalendar.get(Calendar.YEAR); int startMonth = startCalendar.get(Calendar.MONTH) + 1; int endYear = endCalendar.get(Calendar.YEAR); int endMonth = endCalendar.get(Calendar.MONTH) + 1; // 计算起始日期所在半和截止日期所在半 int startHalfYear = (startMonth <= 6) ? 1 : 2; int endHalfYear = (endMonth <= 6) ? 1 : 2; // 计算起始日期所在半到截止日期所在半之间的半数 int halfYearCount = (endYear - startYear) * 2 + (endHalfYear - startHalfYear) + 1; System.out.println("起始日期:" + startCalendar.getTime()); System.out.println("截止日期:" + endCalendar.getTime()); System.out.println("半数:" + halfYearCount); } } ``` 输出结果如下: ``` 起始日期:Fri Jan 01 00:00:00 CST 2021 截止日期:Fri Dec 31 00:00:00 CST 2021 半数:2 ``` 注意,这里的半是按照自然半来计算的,即每的11日到630日为上半,71日到1231日为下半。如果按照财年来计算,则需要将计算起始日期和截止日期所在半的代码修改为: ```java int startHalfYear = (startMonth <= 9) ? 1 : 2; int endHalfYear = (endMonth <= 9) ? 1 : 2; ``` 这样计算出来的半会以1、2、3、4来示。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值