代码之家  ›  专栏  ›  技术社区  ›  Aaron

基于java8代码的4-4-5日历方法

  •  0
  • Aaron  · 技术社区  · 6 年前

    对于我在Power BI中的财政日历,我目前正在尝试实现 4-4-5 approach

    我们的日历适用于4-4-5周的季度。因为每年只有364天,几年后肯定有53周。因此,12月只有6周而不是5周。 不幸的是,仍然没有基于DAX的方法。 calculate number of weeks in a given year

        private static long getNumberOfWeeksInYear(LocalDate date) {
        LocalDate middleOfYear = date.withDayOfMonth(1).withMonth(6);
        return middleOfYear.range(WeekFields.ISO.weekOfWeekBasedYear()).getMaximum();
    }
    
    public static void main(String[] args) {
        for (int year = 2000; year < 2400; year++) {
            long numberOfWeeks = getNumberOfWeeksInYear(LocalDate.of(year, 1, 1));
            if (numberOfWeeks != 52) {
                System.out.println(year + " has " + numberOfWeeks + " weeks");
            }
        }
    }
    

    我们的财政日历不是以公历开始的。 今年从2019年12月30日开始,到2011年1月3日结束。今年有53周。

    0 回复  |  直到 6 年前
        1
  •  1
  •   Axel Richter    6 年前

    我帮不上忙 PowerPivot DAX Excel 公式。

    A2 你可以计算第一个星期一 ISO 使用以下公式计算当年的日历周:

    =DATE($A2,1,1)-WEEKDAY(DATE($A2,1,1),3)+(ISOWEEKNUM(DATE($A2,1,1)-WEEKDAY(DATE($A2,1,1),3))<>1)*7
    

    国际标准化组织 使用以下公式计算当年的日历周:

    =DATE($A2+1,1,1)-WEEKDAY(DATE($A2+1,1,1),3)+(ISOWEEKNUM(DATE($A2+1,1,1)-WEEKDAY(DATE($A2+1,1,1),3))<>1)*7-1
    

    国际标准化组织 日历周置于 C2 ,以下公式计算 国际标准化组织

    =ISOWEEKNUM($C2)
    

    例子:

    enter image description here

    如你所见,岁月是从 向下。计算第一个星期一的公式 国际标准化组织 B2 向下。计算最后一个星期日的公式 国际标准化组织 向下。以及计算 国际标准化组织 那一年有几周了 D2 向下。

    推荐文章