beve
Осваивающий
- Сообщения
- 104
- Репутация
- 31
Имеется программа телепередач:
Нужно придумать "универсальную" функцию, чтобы можно было в этой программе телепередач изменять время - минус час от текущего (переработка с времени России на Украину), минус 4 часа от текущего и прибавить 10 часов к текущему.
Вот так я сделал для переделки времени на час меньше. По такому же принципу придется сделать и для остальных задач. Но может кто посоветует более универсальное решение, чтобы в одной функции реализовать все и было оптимально?
или же другого решения, как только коректировка в этом куске кода нету:
0:00 Программма0
0:30 Программма1
1:00 Программма2
1:15 Программма3
1:30 Программма4
2:00 Программма5
2:30 Программма6
3:00 Программма7
3:30 Программма8
4:00 Программма9
4:15 Программма10
4:30 Программма11
5:00 Программма12
5:30 Программма13
6:00 Программма14
7:00 Программма15
7:30 Программма16
8:00 Программма17
8:15 Программма18
8:30 Программма19
9:00 Программма20
9:30 Программма21
10:00 Программма22
10:30 Программма23
11:00 Программма24
11:30 Программма25
12:00 Программма26
12:30 Программма27
13:00 Программма28
13:30 Программма29
14:00 Программма30
14:15 Программма31
14:45 Программма32
15:45 Программма33
16:00 Программма34
17:00 Программма35
17:15 Программма36
17:30 Программма37
18:00 Программма38
19:00 Программма39
19:30 Программма40
20:00 Программма41
20:30 Программма42
21:00 Программма43
21:30 Программма44
21:45 Программма45
22:00 Программма46
22:30 Программма47
23:00 Программма48
23:30 Программма49
0:30 Программма1
1:00 Программма2
1:15 Программма3
1:30 Программма4
2:00 Программма5
2:30 Программма6
3:00 Программма7
3:30 Программма8
4:00 Программма9
4:15 Программма10
4:30 Программма11
5:00 Программма12
5:30 Программма13
6:00 Программма14
7:00 Программма15
7:30 Программма16
8:00 Программма17
8:15 Программма18
8:30 Программма19
9:00 Программма20
9:30 Программма21
10:00 Программма22
10:30 Программма23
11:00 Программма24
11:30 Программма25
12:00 Программма26
12:30 Программма27
13:00 Программма28
13:30 Программма29
14:00 Программма30
14:15 Программма31
14:45 Программма32
15:45 Программма33
16:00 Программма34
17:00 Программма35
17:15 Программма36
17:30 Программма37
18:00 Программма38
19:00 Программма39
19:30 Программма40
20:00 Программма41
20:30 Программма42
21:00 Программма43
21:30 Программма44
21:45 Программма45
22:00 Программма46
22:30 Программма47
23:00 Программма48
23:30 Программма49
Вот так я сделал для переделки времени на час меньше. По такому же принципу придется сделать и для остальных задач. Но может кто посоветует более универсальное решение, чтобы в одной функции реализовать все и было оптимально?
Код:
#include <Array.au3>
$sData=ClipGet()
$Programma= _ConvertProgramTime($sData, -1)
if @error Then
MsgBox(48, "Warning", "Произошла ошибка")
Exit
endif
MsgBox(64,"Message", $Programma)
;$Data=телепрограмма, $Time=нужное время от указанного текущего
Func _ConvertProgramTime($Data, $Time=0)
if $Data="" then Return SetError(1)
$aText=StringRegExp($Data, "\d\d?:\d\d.*", 3)
if IsArray($aText) then
For $i=0 to UBound ($aText)-1
$HourTime=int(StringLeft($aText[$i], 2))
$NewHourTime=$HourTime+$Time
$NewHourTime=StringFormat("%02i", $NewHourTime)
;почему дальше не if, да для этого можно сделать if, но если нужно будет отнимать 4 часа или прибавлять 10, то придется так.
Switch $NewHourTime
Case "-1"
$NewHourTime="23"
EndSwitch
for $Hour=0 to 23
if $HourTime==$Hour then
$aText[$i]=StringRegExpReplace($aText[$i],"\d\d?(:\d\d.*)", $NewHourTime & "\1")
endif
next
Next
Else
Return SetError(2)
EndIf
_ArraySort($aText)
Return _ArrayToString($aText, @lf)
EndFunc
или же другого решения, как только коректировка в этом куске кода нету:
Код:
Switch $NewHourTime
Case "-1"
$NewHourTime="23"
EndSwitch