-
Notifications
You must be signed in to change notification settings - Fork 3
/
_isday.cmd
137 lines (127 loc) · 4.76 KB
/
_isday.cmd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
@ECHO OFF
SETLOCAL ENABLEDELAYEDEXPANSION&::(Don't pollute the global environment with the following)
::**********************************************************************
SET $NAME=%~n0
SET $DESCRIPTION=Checks if time is morning, day or evening
SET $AUTHOR=Erik Bachmann, ClicketyClick.dk [ErikBachmann@ClicketyClick.dk]
SET $SOURCE=%~f0
::@(-) The name of the command or function, followed by a one-line description of what it does.
::@(#) %$NAME% -- %$DESCRIPTION%
::@(#)
::@(#)SYNOPSIS
::@(-) In the case of a command, a formal description of how to run it and what command line options it takes.
::@(-) For program functions, a list of the parameters the function takes and which header file contains its definition.
::@(#) %$Name% [time] [End of morning] [start of evening]
::@(#)
::@ (#)OPTIONS
::@(-) Flags, parameters, arguments (NOT the Monty Python way)
::@(#) -h Help page
::@(#) TIME Default is %%TIME%%
::@(#)
::@(#) Default morning ends at 07:00 and evening starts at 22:00
::@(#)
::@(#)DESCRIPTION
::@(-) A textual description of the functioning of the command or function.
::@(#) Note! Night is either Morning nor evening ;-)
::@(#)
::@(#)EXAMPLES
::@(-) Some examples of common usage.
::@(#) CALL %$NAME%
::@(#) Same as:
::@(#) CALL %$NAME% %%TIME%%
::@(#)
::@(#) CALL %$NAME% %%TIME%% 06:00:00 20:00:00
::@(#) Day between 06:00 and 22:00
::@(#)
::@ (#)EXIT STATUS
::@(-) Exit status / errorlevel is 0 if OK, otherwise 1+.
::@(#) 0 OK (Daytime)
::@(#) 1 Help or manual page
::@(#) 2 Morning
::@(#) 3 Evening
::@(#) 4+ Error
::@(#)
::@ (#)ENVIRONMENT
::@(-) Variables affected
::@ (#)
::@ (#)
::@ (#)FILES,
::@(-) Files used, required, affected
::@ (#)
::@ (#)
::@ (#)BUGS / KNOWN PROBLEMS
::@(-) If any known
::@ (#)
::@ (#)
::@(#)REQUIRES
::@(-) Dependecies
::@(#) _Debug.cmd Setting up debug environment for batch scripts
::@(#) _GetOpt.cmd Parse command line options and create environment vars
::@(#)
::@ (#)SEE ALSO
::@(-) A list of related commands or functions.
::@ (#)
::@ (#)
::@ (#)REFERENCE
::@(-) References to inspiration, clips and other documentation
::@ (#) Author:
::@ (#) URL:
::@ (#)
::@(#)
::@(#)SOURCE
::@(-) Where to find this source
::@(#) %$Source%
::@(#)
::@ (#)AUTHOR
::@(-) Who did what
::@ (#) %$AUTHOR%
::*** HISTORY **********************************************************
::SET $VERSION=YYYY-MM-DD&SET $REVISION=hh:mm:ss&SET $COMMENT=Init Description [xx.xxx]
::SET $VERSION=2010-10-27&SET $REVISION=15:15:00&SET $COMMENT=Initial [01.000]
::SET $VERSION=2014-01-07&SET $REVISION=15:09:00&SET $COMMENT=Bugfix on return value/ErikBachmann [01.001]
::SET $VERSION=2015-02-19&SET $REVISION=03:25:37&SET $COMMENT=Autoupdate / ErikBachmann
::SET $VERSION=2015-10-08&SET $REVISION=11:20:00&SET $COMMENT=GetOpt: Calling usage on -h and exit on error / ErikBachmann
::SET $VERSION=2015-11-23&SET $REVISION=16:30:00&SET $COMMENT=GetOpt replaced _getopt.sub simple call. Reduces runtime to 1/3 / ErikBachmann
SET $VERSION=2016-03-14&SET $REVISION=10:00:00&SET $COMMENT=Set "%~dp0\ prefix on function calls / ErikBachmann
::**********************************************************************
::@(#)(c)%$Version:~0,4% %$Author%
::**********************************************************************
CALL "%~dp0\_DEBUG"
::CALL "%~dp0\_Getopt" %*&IF ERRORLEVEL 1 EXIT /B 1
:: Check ONLY for combinations of -h, /h, --help
CALL "%~dp0\_getopt.sub" %*&IF ERRORLEVEL 1 EXIT /B 1
::ENDLOCAL
:MAIN
CALL SET _Periode=99
::CALL "%~dp0\_PreFunction" %* || ( EXIT /B 1 )
CALL :Init %*
CALL :IsDay "%_Time%"
@ENDLOCAL&SET _Isday=%_Periode%
EXIT /B %_isday%
GOTO :EOF
::----------------------------------------------------------------------
:Init Time morning evening
CALL SET _Time=%~1
IF NOT DEFINED _Time CALL SET _TIME=%TIME:~0,8%
IF NOT (%2!)==(!) SET _Morning=%2
IF NOT (%3!)==(!) SET _EVENING=%3
IF NOT DEFINED _Morning SET _Morning=06:00:00
IF NOT DEFINED _EVENING SET _EVENING=22:00:00
GOTO :EOF
::----------------------------------------------------------------------
:IsDay
IF /I "%~1" LSS "%_Morning%" (
%_Debug_% 1 _Morning: %1 ^< %_Morning%
CALL SET _Periode=2
) ELSE IF /I "%~1" GTR "%_EVENING%" (
%_Debug_% 2 _EVENING: %1 ^> %_EVENING%
CALL SET _Periode=3
) ELSE IF /I "%~1" LSS "24:00:01" (
%_Debug_% 0 Daytime: %_Morning% ^< %1 ^< %_EVENING%
CALL SET _Periode=0
) ELSE (
%_Debug_% 0 Daytime: %_Morning% ^< %1 ^< %_EVENING%
CALL SET _Periode=0
)
GOTO :EOF
::*** End of File ******************************************************