每个月的每周第一天在PowerApps中

时间:2019-09-30 03:27:22

标签: powerapps powerapps-formula powerapps-canvas

我有一个包含两列的表: 1个月 2.周

表中的数据如下:

月|周

1 | 4

2 | 3

3 | 2

4 | 1

5 | 4

6 | 3

7 | 2

8 | 1

9 | 4

10 | 3

11 | 2

12 | 1

现在,根据用户提供的日期,我需要根据上表中的映射表找到相应的一周的第一天。

示例1

用户日期:9/29/2019

现在,我将看到用户提供的日期中的月份,然后基于该月份;我将查看表格,查看该月的相应星期。 在这里,对于第9个月(9月),相应的一周将是第4周。 现在,因为我有那个月的一周;我需要找到一年中该月那一周的第一天。在这种情况下,它将是9/23/2019。

我的解决方案应该是2019年9月23日。

示例2

用户日期:10/10/2019

现在,我将看到用户提供的日期中的月份,然后基于该月份;我将查看表格,查看该月的相应星期。 在这里,对于第10个月(10月),相应的一周将是第3周。 现在,因为我有那个月的一周;我需要找到一年中该月那一周的第一天。在这种情况下,它将是10/21/2019。

我的解决方案应该是2019年10月21日。

在这种情况下,我试图提出PowerApps公式。 任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

根据您的要求,您应该可以使用此表达式(假设来自用户的日期来自日期选择器;如果该日期来自其他来源,则需要调整该表达式):

With(
    { firstDay: Date(Year(DatePicker1.SelectedDate), Month(DatePicker1.SelectedDate), 1) },
    With(
        {
            firstMonday: DateAdd(firstDay, 7 - Weekday(firstDay, StartOfWeek.Tuesday), Days),
            weekNumber: LookUp(MyTable, Month = Month(DatePicker1.SelectedDate), Week)
        },
        DateAdd(firstMonday, 7 * (weekNumber - 1), Days)))

让我们分解一下:

  • 第一个With创建一个名为firstDay的范围变量,该变量保存用户选择的每月的第一天;
  • 第二个With计算该月的第一个 Monday ,因为这决定了方案中的星期数。通过将直到下一个星期一的天数添加到每月的第一天来完成此操作,该天数是在上述步骤中计算得出的。它还会从您的表中检索星期数(在我的示例中,我将其称为“ MyTable”,您将在方案中将其替换为适当的名称)
  • 最后,给定周数和每月的第一个星期一,我们可以添加适当的天数以获得所需的结果。

希望这会有所帮助!