Как определить, происходит ли диапазон дат какое-либо время в другом диапазоне дат?

Параметры определяются для области действия функции, а не для сценария.

То, что вы хотите, это раздел Param :

param ([string]$param1, [string]$param2)

function TestFunc([string]$param1, [string]$param2) {
    Write-Host "------------------"
    Write-Host $param1
    Write-Host $param2
    Write-Host "------------------"
}
TestFunc $param1 $param2 

Конечно, наличие дублированных имен переменных вводит в заблуждение, но я просто тестирую функцию. В вашем случае вам даже не понадобится функция:

param ([string]$param1, [string]$param2)

Write-Host "------------------"
Write-Host $param1
Write-Host $param2
Write-Host "------------------"

Или, альтернативно:

param ([string]$param1, [string]$param2)

function TestFunc {
    Write-Host "------------------"
    Write-Host $param1
    Write-Host $param2
    Write-Host "------------------"
}
TestFunc

Или используйте автоматическую переменную $args без определения каких-либо параметров:

function TestFunc {
    Write-Host "------------------"
    Write-Host $args[0]
    Write-Host $args[1]
    Write-Host "------------------"
}
TestFunc foo bar

6
задан Soviut 8 April 2009 в 16:14
поделиться

5 ответов

(event.start BETWEEN week.start AND week.end)
OR
(week.start BETWEEN event.start AND event.end)

In simple words, either a week starts during the event, or an event starts during the week.

Let's check it:

Event begins and ends within the week

The event starts during the week.

Event begins before the week, but ends within the week

The week starts during the event.

Event begins within the week, but ends after the week

The event starts during the week.

Event begins before the week and also ends after the week

The week starts during the event.

Note that BETWEEN in expressions above is used just for the sake of brevity.

Strict expression looks like this:

(event.start >= week.start AND event.start < week.end)
OR
(week.start >= event.start AND week.start < event.end)

, provided that week.end is a week.start + INTERVAL 7 DAY.

I. e. if you week starts of Sun, 0:00:00, then it should end on next Sun, 0:00:00 (not on Sat, 0:00:00)

This expression looks more complex than the one which is commonly used:

event.start < week.end AND event.end > week.start

, but the former is more efficient and index friendly.

See these articles in my blog for performance comparisons:

21
ответ дан 8 December 2019 в 04:10
поделиться

(end2> = start1) && (start2 <= end1) Я думаю, что вернул бы true для любых пересекающихся диапазонов дат.

Я нашел обсуждение этого здесь что я нашел полезным.

0
ответ дан 8 December 2019 в 04:10
поделиться
(event.start BETWEEN week.start AND week.end)
OR
(week.start BETWEEN event.start AND event.end)

Проще говоря, либо неделя начинается во время события, либо событие начинается в течение недели.

Давайте проверьте его:

Событие начинается и заканчивается в течение недели

Событие начинается в течение недели.

Событие начинается до недели, но заканчивается в течение недели

Неделя начинается во время события.

Событие начинается в течение недели, но заканчивается после недели

Событие начинается в течение недели.

Событие начинается до недели, а также заканчивается после недели

Неделя начинается во время события.

Обратите внимание, что МЕЖДУ в вышеприведенных выражениях используется просто для краткости.

Строгое выражение выглядит следующим образом:

(event.start >= week.start AND event.start < week.end)
OR
(week.start >= event.start AND week.start < event.end)

, при условии, что week.end является неделей. начало + ИНТЕРВАЛ 7 ДНЯ .

I. е. если у вас неделя начинается с вс, 0:00:00 ,

3
ответ дан 8 December 2019 в 04:10
поделиться

В порядке ...

where start_date >= week_start and end_date <= week_end
where start_date <= week_start and end_date >= week_start and end_date <= week_end
where start_date >= week_start and start_date <= week_end and end_date > week_end
where start_date < week_start and end_date > week_end
0
ответ дан 8 December 2019 в 04:10
поделиться

+1 для поп-каталина,

2
ответ дан 8 December 2019 в 04:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: