PowerApps 中每个月每个星期的第一天
First day of every week in every month in PowerApps
我有一个包含两列的 table:
1个月
2.周
table中的数据如下:
月份 |周
1 | 4
2 | 3
3 | 2
4 | 1
5 | 4
6 | 3
7 | 2
8 | 1
9 | 4
10 | 3
11 | 2
12 | 1
现在,根据用户提供的日期,我需要根据上面 table 中的映射找到相应的一周的第一天。
示例 1:
用户日期:9/29/2019
现在,我将看到用户提供的日期中的月份,然后基于该月份;我将查看 table 并查看该月的相应周。
在这里,对于第 9 个月(9 月),相应的周将是第 4 周。
现在,因为我有那个月的一周;我需要在一年中的那个月找到那个星期的第一个日期。在这种情况下,它将是 2019 年 9 月 23 日。
我的解决方案应该是 9/23/2019。
示例 2:
用户日期:10/10/2019
现在,我将看到用户提供的日期中的月份,然后基于该月份;我将查看 table 并查看该月的相应周。
在这里,对于第 10 个月(10 月),相应的周将是第 3 周。
现在,因为我有那个月的一周;我需要在一年中的那个月找到那个星期的第一个日期。在这种情况下,它将是 2019 年 10 月 21 日。
我的解决方案应该是 10/21/2019。
我正在尝试为这种情况提出 PowerApps 公式。
任何帮助将不胜感激。
根据您的要求,您应该能够使用此表达式(假设用户的日期来自日期选择器;如果日期来自其他来源,您将需要调整表达式):
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
计算当月的第一个 星期一 ,因为这决定了您方案中的周数。它通过将到下一个星期一的天数添加到该月的第一天来实现,这是在上面的步骤中计算的。它还从您的 table 中检索周数(在我的示例中,我将其称为 'MyTable',您可以在您的场景中将其替换为适当的名称)
- 最后,给定周数和该月的第一个星期一,我们可以添加适当的天数以获得所需的结果。
希望对您有所帮助!
我有一个包含两列的 table: 1个月 2.周
table中的数据如下:
月份 |周
1 | 4
2 | 3
3 | 2
4 | 1
5 | 4
6 | 3
7 | 2
8 | 1
9 | 4
10 | 3
11 | 2
12 | 1
现在,根据用户提供的日期,我需要根据上面 table 中的映射找到相应的一周的第一天。
示例 1:
用户日期:9/29/2019
现在,我将看到用户提供的日期中的月份,然后基于该月份;我将查看 table 并查看该月的相应周。 在这里,对于第 9 个月(9 月),相应的周将是第 4 周。 现在,因为我有那个月的一周;我需要在一年中的那个月找到那个星期的第一个日期。在这种情况下,它将是 2019 年 9 月 23 日。
我的解决方案应该是 9/23/2019。
示例 2:
用户日期:10/10/2019
现在,我将看到用户提供的日期中的月份,然后基于该月份;我将查看 table 并查看该月的相应周。 在这里,对于第 10 个月(10 月),相应的周将是第 3 周。 现在,因为我有那个月的一周;我需要在一年中的那个月找到那个星期的第一个日期。在这种情况下,它将是 2019 年 10 月 21 日。
我的解决方案应该是 10/21/2019。
我正在尝试为这种情况提出 PowerApps 公式。 任何帮助将不胜感激。
根据您的要求,您应该能够使用此表达式(假设用户的日期来自日期选择器;如果日期来自其他来源,您将需要调整表达式):
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
计算当月的第一个 星期一 ,因为这决定了您方案中的周数。它通过将到下一个星期一的天数添加到该月的第一天来实现,这是在上面的步骤中计算的。它还从您的 table 中检索周数(在我的示例中,我将其称为 'MyTable',您可以在您的场景中将其替换为适当的名称) - 最后,给定周数和该月的第一个星期一,我们可以添加适当的天数以获得所需的结果。
希望对您有所帮助!