|
1 | | -List.ContinuousDates = [ |
2 | | - /* |
3 | | - Generate all dates for a date table |
4 | | - Source: <https://github.com/ninmonkey/Ninmonkey.PowerQueryLib/blob/master/source/List.ContinuousDates.pq> |
5 | | - input: |
6 | | - a list of dates |
7 | | - */ |
8 | | - List.ContinuousDates.Type = type function (source as list) as list meta [ |
9 | | - Documentation.Name = "List.ContinuousDates", |
10 | | - Documentation.LongDescription = "Generate a continuous list of dates from a list of dates, useful for date tables", |
11 | | - Documentation.Examples = {[ |
12 | | - Description = "Generate a continuous list of dates", |
13 | | - Code = "List.ContinuousDates( { #date(2021, 1, 1), #date(2021, 1, 3)} )", |
14 | | - Result = "Table.FromRecords({ [ Date = #date(2021, 1, 1)], [ Date = #date(2021, 1, 2)], [ Date = #date(2021, 1, 3)])" |
15 | | - ]} |
16 | | - ], |
17 | | - List.ContinuousDates.Impl = (source as list) as list => let |
18 | | - first = List.Min(source), |
19 | | - last = List.Max(source), |
20 | | - days = { Number.From(first)..Number.From(last) }, |
| 1 | +let |
21 | 2 |
|
22 | | - baseDates = List.Transform( |
23 | | - days, each Date.From(_) ) |
24 | | - in |
25 | | - baseDates, |
26 | | - return = Value.ReplaceType( List.ContinuousDates.Impl, List.ContinuousDates.Type ) |
27 | | -][return], |
| 3 | + /* |
| 4 | + Generate all dates for a date table |
| 5 | + Source: <https://github.com/ninmonkey/Ninmonkey.PowerQueryLib/blob/master/source/List.ContinuousDates.pq> |
| 6 | + |
| 7 | + category: data generation? dates |
| 8 | + input: |
| 9 | + a list of dates |
| 10 | + */ |
| 11 | + List.ContinuousDates.Type = type function (source as list) as list meta [ |
| 12 | + Documentation.Name = "List.ContinuousDates", |
| 13 | + Documentation.LongDescription = "Generate a continuous list of dates from a list of dates, useful for date tables", |
| 14 | + Documentation.Examples = {[ |
| 15 | + Description = "Generate a continuous list of dates", |
| 16 | + Code = "List.ContinuousDates( { #date(2021, 1, 1), #date(2021, 1, 3)} )", |
| 17 | + Result = "Table.FromRecords({ [ Date = #date(2021, 1, 1)], [ Date = #date(2021, 1, 2)], [ Date = #date(2021, 1, 3)])" |
| 18 | + ]} |
| 19 | + ], |
| 20 | + List.ContinuousDates.Func = (source as list) as list => let |
| 21 | + first = List.Min(source), |
| 22 | + last = List.Max(source), |
| 23 | + days = { Number.From(first)..Number.From(last) }, |
| 24 | + |
| 25 | + baseDates = List.Transform( |
| 26 | + days, each Date.From(_) ) |
| 27 | + in |
| 28 | + baseDates |
| 29 | + |
| 30 | +in Value.ReplaceType( |
| 31 | + List.ContinuousDates.Func, List.ContinuousDates.Type ) |
0 commit comments