|
|
|
Прибавить дни без учета выходных
|
|||
|---|---|---|---|
|
#18+
Доброго времени суток! Язык VBScript. Надо прибавить к задаваемой дате (например сегодняшней) задаваемое кол-во дней, таким образом, чтобы не уыитывались выходные дни, а только рабочие. Пишу код вида MyNewDate=DatePlusWorkDays(Now(), 12) Function DatePlusWorkDays(dDateFrom, nWorkDays) DatePlusWorkDays = dDateFrom For iTemp = 1 To nWorkDays If Weekday(DatePlusWorkDays + 1) <> 1 And Weekday(DatePlusWorkDays + 1) <> 7 Then DatePlusWorkDays = DatePlusWorkDays + 1 End If Next End Function Мой вариант работает только до первых выходных, потом счетчик сбивается. Проблема не в том, что не могу код написать, проблема что не могу алгоритм составить для дней недели, хотя вроде бы такая простая задача ... Спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2007, 14:43 |
|
||
|
Прибавить дни без учета выходных
|
|||
|---|---|---|---|
|
#18+
Private Sub Form_Load() MsgBox DateDiffW(Date, CDate("01/12/2007")), , "Верну число рабочих дней, оставшихся до 1 декабря" End Sub Function DateDiffW(BegDate, EndDate) Const SUNDAY = 1 Const SATURDAY = 7 Dim NumWeeks As Integer If BegDate > EndDate Then DateDiffW = 0 Else Select Case Weekday(BegDate) Case SUNDAY: BegDate = BegDate + 1 Case SATURDAY: BegDate = BegDate + 2 End Select Select Case Weekday(EndDate) Case SUNDAY: EndDate = EndDate - 2 Case SATURDAY: EndDate = EndDate - 1 End Select NumWeeks = DateDiff("ww", BegDate, EndDate) DateDiffW = NumWeeks * 5 + Weekday(EndDate) - Weekday(BegDate) End If End Function ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2007, 15:03 |
|
||
|
|

start [/forum/topic.php?desktop=1&fid=60&tid=2163110]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
55ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
36ms |
get tp. blocked users: |
1ms |
| others: | 248ms |
| total: | 384ms |

| 0 / 0 |
