Tweets from pichat
| Follow my new user account @markseu About 2 months, 3 weeks ago from Pichat (Pichat Software) |
Tweets from 600infos
| I HAVE NYANED FOR 888.4 SECONDS! http://t.co/JQYOZebv via @nyannyancat About 3 months, 3 weeks ago from 600infos (Wolf) |
Trace: » Set a new IP Address » Simple Webcam Viewer » SMTP Mailing » Configs for sudo » Truecrypt » Wochentag eines Datums bestimmen/berechnen
You are here: Pichat Wiki (en) » Snippets » Wochentag eines Datums bestimmen/berechnen
Table of Contents
Wochentag eines Datums bestimmen/berechnen
Hier ein Commando - Script ( DOS - Batch ) welches den Wochentag eines beliebigen Datums bestimmt…
weekday.cmd kann den eigenen Bedürfnissen angepasst werden und übergibt die Parameter als SET Variablen
Für die Suchmaschinen: Commando, Script, cmd, Windows, DOS, Batch, bat, Wochentag, beliebiges Datum bestimmen, berechnen
Zuvor noch ein kleines Script zum testen:
CODE
- weekday.cmd
@echo off setlocal set _thisfile=%~nx0 REM ############################################################################ REM REM weekday.cmd created by Mark Wolfgruber 600infos.de REM REM Feature Requests: REM if you need it ... let me know! REM - i'm searching for a good translation REM - calculate x-days ago REM - calculate in x-days REM - no more open requests REM REM open BUGs: REM - no more known bugs at the moment REM REM Version 0.0.5 Mark Wolfgruber 10.12.2010 REM - add julian day number - works only between 1801 and 2099 REM REM Version 0.0.4 Mark Wolfgruber 10.12.2010 REM - BUG: weekday.cmd calc sometimes wrong year if the week is in the new year REM - set _thisfile=%~nx0 # now dynamic filename Rem - new var: _cy - for the Year of the Calenderweek Rem - new var: _y - for the Year number without leading 0 REM - modify help file REM - description of the enviroment variables REM - modified for using as a procedure REM REM Version 0.0.3c Mark Wolfgruber 28.04.2009 REM - BUG: Year 00-09 was 20000 - 20009 now it is 2000 - 2009 REM - BUG: Weekday at the end of the year is possible in cw 1 REM - new option /clear REM - new option 0 REM - modify help file REM REM Version 0.0.3 Mark Wolfgruber 20.04.2009 REM - Variable _cwy replace _cw (Format: WEEK/YEAR) REM - new Variable _cw (Format: WEEK) REM - add a help REM - validate the date REM - _language_default=de REM - add _thisfile REM - BUG: Year 0-9 was 200 - 209 now it is 2000 - 2009 REM REM Version 0.0.2 Mark Wolfgruber 15.04.2009 REM - BUG-Behebung: Eingabe jetzt in _date (statt in _input) REM - Ergänze ein paar REM-Zeilen REM - Tag des Jahres berechnen REM - Schaltjahre (en: leap year) REM ~ sind alle Jahre, deren Jahreszahl ohne Rest durch vier teilbar sind. REM Der 29. Februar wird als Schalttag eingefügt. REM Alle Jahre, welche ohne Rest durch 100 teilbar sind, sind keine Schaltjahre. REM Ausgenommen von dieser Schaltjahresregelung sind volle Jahrhunderte, die REM nicht ohne Rest durch 400 teilbar sind. REM (2000 war ein Schaltjahr, 1900 nicht) REM - Kalenderwoche berechnen REM Grundlage: REM http://de.wikipedia.org/wiki/Woche#Z.C3.A4hlweise_nach_DIN_1355_.2F_ISO_8601 REM Formel zur Berechung der KW wurde von mir selbst entwickelt und REM ist ggf. nochmal zu prüfen REM Die Formel basiert auf der Annahme, dass der 4.1. immer in der KW 1 liegt REM REM Version 0.0.1 Mark Wolfgruber 14.04.2009 REM REM zweistellige Jahreszahlen 31-99 werden als 1931-1999 interprediert REM zweistellige Jahreszahlen 00-30 werden als 2000-2030 interprediert REM wird keine Jahreszahl angegeben wird das aktuelle Jahr verwendet REM wird kein Monat angegeben wird das aktuelle Monat verwendet REM wird kein Tag angegeben wird der aktuelle Tag verwendet REM Z.Zt. findet keine Prüfung auf unplausible Tage statt REM REM Aufruf z.B. REM für Heute: weekday.cmd %date% REM für den 1. des Monats: weekday.cmd 1. oder weekday.cmd 0/1 REM ############################################################################ REM REM Wochentagsberechnung nach Gauß ab 15.10.1582 REM REM Quelle der Formel: http://de.wikipedia.org/wiki/Gau%C3%9Fsche_Wochentagsformel REM Umgesetzt in einem DOS-commandozeilen-Script nach einer Idee von Mark Wolfgruber REM REM Die Gaußsche Wochentagsformel ist eine Formel von Carl Friedrich Gauß REM zur Berechnung des Wochentags anhand eines gegebenen Datums. REM Sie wird häufig für die Berechnung der Wochentage in der Informatik eingesetzt. REM Die Formel gilt von der Einführung des Gregorianischen Kalenders am 15. Oktober 1582 REM an und prinzipiell solange, bis von diesen Kalenderregeln wieder abgewichen wird, REM also bis zur nächsten Kalenderreform. REM REM ############################################################################ :weekday_predifined_vars REM if you want to set it befor starting the script please REMark this lines set _date= set _language_default=de REM set _language_output= :weekday_vars if "%1" == "0" set _date=%date% REM try an Autodetection if "%1" == "" ( echo %date% | find "." >nul && set _oslanguage=de&& if "%_language_output%"=="" set _language_output=de echo %date% | find "/" >nul && set _oslanguage=en&& if "%_language_output%"=="" set _language_output=en ) ELSE ( if "%_language_output%"=="" echo %1 | find "/" >nul && set _language_output=en echo %date% | find "/" >nul && set _oslanguage=en if "%_language_output%"=="" echo %1 | find "." >nul && set _language_output=de echo %date% | find "." >nul && set _oslanguage=de ) REM define the output format if no enviroment is set if "%_language_output%"=="" set _language_output=%_language_default% REM to define the os language (date format) if %_oslanguage%=="" set _oslanguage=%_language_default% call :weekday_define_language_output_%_language_output% if not "%1"=="" set _date=%1 if /I "%1"=="/h" goto weekday_help if /I "%1"=="/help" goto weekday_help if /I "%1"=="/?" goto weekday_help if /I "%1"=="/clear" goto weekday_clear_vars if "%_date%"=="" set /p _date=%_ask_for_Date% [%date%]: if "%_date%"=="" set _date=%date% set _date=%_date:-=/% REM Autodetection Date-Input-Format echo %_date% | find "/" >nul && set _language_input=en echo %_date% | find "." >nul && set _language_input=de REM to define the input format if "%_language_input%"=="" set _language_input=%_language_default% :weekday_main call :weekday_split_date_%_language_input% call :weekday_set_month_value call :weekday_set_year_value call :weekday_def_leapyear call :weekday_calc_weekday call :weekday_def_daysb4 call :weekday_def_cwy call :jdate _jd %_dd%.%_mm%.%_yyyy% rem echo %_dd%.%_mm%.%_yyyy% = %_jd% endlocal & ( set _cw=%_cw% set _cwy=%_cwy% set _cy=%_cy% set _d=%_d% set _dayofyear=%_dayofyear% set _dd=%_dd% set _jd=%_jd% set _language_output=%_language_output% set _leapyear=%_leapyear% set _longdate=%_longdate% set _m=%_m% set _mm=%_mm% set _w=%_w% set _ww=%_ww% set _www=%_www% set _cent=%_cent% set _y=%_y% set _yy=%_yy% set _yyyy=%_yyyy% ) call :weekday_format_output_date_strings REM call :weekday_show_set_enviroment_output REM call :weekday_display goto weekday_end REM ############################################################################ ::weekday_functions :weekday_show_set_enviroment_output echo. echo SET Enviroment-Variables: set _ EXIT /b :weekday_format_output_date_strings set _date=%_yyyy%-%_mm%-%_dd% if %_cw% LEQ 9 ( set _cww=0%_cw% ) ELSE ( set _cww=%_cw% ) set _cwwy=%_cww%/%_cy% set _cwy=%_cw%/%_cy% set _cwyw=%_cy%_%_cww% if /I "%_language_output%"=="de" ( set _longdate=%_www%, %_dd%.%_mm%.%_yyyy% ) ELSE ( set _longdate=%_www%, %_mm%/%_dd%/%_yyyy% ) REM more examples ... rem set _datestr1=%_yyyy%-%_mm%-%_dd% rem set _datestr2=%_yy%-%_mm%-%_dd% rem set _datestr3=%_yyyy%%_mm%%_dd% rem set _datestr4=%_yy%%_mm%%_dd% rem set _datestr5=%_yy%%_m%%_d% EXIT /b :weekday_calc_weekday set _d=x0%_dd% set _d=%_d:x0=x% set _d=%_d:x0=x% set _d=%_d:x=% set /a _d=%_d%+0 if %_d% LSS 10 set _dd=0%_d% if %_d% GTR 31 set _dd=31& set _d=31 if %_m% EQU 2 ( if %_leapyear% EQU 1 ( if %_d% GTR 29 set _dd=29& set _d=29 ) ELSE ( if %_d% GTR 28 set _dd=28& set _d=28 ) ) if %_m% EQU 4 if %_d% GTR 30 set _dd=30& set _d=30 if %_m% EQU 6 if %_d% GTR 30 set _dd=30& set _d=30 if %_m% EQU 9 if %_d% GTR 30 set _dd=30& set _d=30 if %_m% EQU 11 if %_d% GTR 30 set _dd=30& set _d=30 REM Formel: w = (d + [2,6 m – 0,2] + y + [y/4] + [c/4] – 2c) mod 7 REM wobei für [2,6 m – 0,2] die Liste verwendet wird REM Ich nutze den Umstand, dass das Ergebnis nur aus Ganzzahlen besteht set /a _w0=( %_d% + %_m_val% ) + ( %_y2% ) + ( %_y2% / 4 ) + ( %_c2% / 4 ) - ( 2 * %_c2% ) set /a _w1=%_w0%/7 set /a _w=%_w0% - ( %_w1% * 7 ) if %_w% LSS 0 set /a _w=%_w%+7 call :weekday_weekdays EXIT /b :weekday_weekdays REM Korrektur für Sonntag=7 mit &set _w=7 if "%_w%"=="0" set _www=%_Sun%&set _ww=%_Su%&set _w=7 if "%_w%"=="1" set _www=%_Mon%&set _ww=%_Mo% if "%_w%"=="2" set _www=%_Tue%&set _ww=%_Tu% if "%_w%"=="3" set _www=%_Wed%&set _ww=%_We% if "%_w%"=="4" set _www=%_Thu%&set _ww=%_Th% if "%_w%"=="5" set _www=%_Fri%&set _ww=%_Fr% if "%_w%"=="6" set _www=%_Sat%&set _ww=%_Sa% EXIT /b :weekday_set_month_value set _m=x0%_mm% set _m=%_m:x0=x% set _m=%_m:x0=x% set _m=%_m:x=% set /a _m=%_m%+0 if %_m% LSS 10 set _mm=0%_m% if %_m% GTR 12 set _mm=12& set _m=12 REM Liste für [2,6 m – 0,2] if %_m% EQU 1 set _m_val=28 if %_m% EQU 2 set _m_val=31 if %_m% EQU 3 set _m_val=2 if %_m% EQU 4 set _m_val=5 if %_m% EQU 5 set _m_val=7 if %_m% EQU 6 set _m_val=10 if %_m% EQU 7 set _m_val=12 if %_m% EQU 8 set _m_val=15 if %_m% EQU 9 set _m_val=18 if %_m% EQU 10 set _m_val=20 if %_m% EQU 11 set _m_val=23 if %_m% EQU 12 set _m_val=25 EXIT /b :weekday_set_year_value set _c=%_cent% set _c2=%_c% set _y=x0%_yy% set _y=%_y:x0=x% set _y=%_y:x0=x% set _y=%_y:x=% set /a _y=%_y%+0 if %_y% LSS 10 set _yy=0%_y% set _y2=%_y% if %_m% EQU 1 call :weekday_set_correction if %_m% EQU 2 call :weekday_set_correction EXIT /b :weekday_set_correction if "%_y2%"=="0" ( set _y2=99 set /a _c2=%_c2%-1 ) ELSE ( set /a _y2=%_y2%-1 ) EXIT /b :weekday_define_language_output_ REM default if no datelanguage is set :weekday_define_language_output_en set _ask_for_Date=Date set _language_output=en set _Su=Su set _Mo=Mo set _Tu=Tu set _We=We set _Th=Th set _Fr=Fr set _Sa=Sa set _Sun=Sunday set _Mon=Monday set _Tue=Tuesday set _Wed=Wednesday set _Thu=Thursday set _Fri=Friday set _Sat=Saturday EXIT /b :weekday_define_language_output_de set _ask_for_Date=Bitte ein Datum eingeben set _Su=So set _Mo=Mo set _Tu=Di set _We=Mi set _Th=Do set _Fr=Fr set _Sa=Sa set _Sun=Sonntag set _Mon=Montag set _Tue=Dienstag set _Wed=Mittwoch set _Thu=Donnerstag set _Fri=Freitag set _Sat=Samstag EXIT /b :weekday_split_date_ REM default if no oslanguage is set :weekday_split_date_en FOR /F "usebackq tokens=1,2,3,4,* delims=/" %%a IN (`echo %_date%`) DO ( set _mm=%%a set _dd=%%b set _yyyy=%%c ) call :weekday_check_date set /a _cent=%_yyyy%/100 set /a _yy=%_yyyy% - ( %_cent% * 100 ) EXIT /b :weekday_split_date_de FOR /F "usebackq tokens=1,2,3,4,* delims=." %%a IN (`echo %_date%`) DO ( set _dd=%%a set _mm=%%b set _yyyy=%%c ) call :weekday_check_date set /a _cent=%_yyyy%/100 set /a _yy=%_yyyy% - ( %_cent% * 100 ) EXIT /b :weekday_check_date if "%_dd%"=="" FOR /F " usebackq tokens=1,2,3,4,* delims=./" %%a IN (`echo %date%`) DO ( if /I "%_oslanguage%"=="de" ( set _dd=%%a ) ELSE ( set _dd=%%b ) ) if %_dd% EQU 0 FOR /F " usebackq tokens=1,2,3,4,* delims=./" %%a IN (`echo %date%`) DO ( if /I "%_oslanguage%"=="de" ( set _dd=%%a ) ELSE ( set _dd=%%b ) ) if "%_mm%"=="" FOR /F " usebackq tokens=1,2,3,4,* delims=./" %%a IN (`echo %date%`) DO ( if /I "%_oslanguage%"=="de" ( set _mm=%%b ) ELSE ( set _mm=%%a ) ) if %_mm% EQU 0 FOR /F " usebackq tokens=1,2,3,4,* delims=./" %%a IN (`echo %date%`) DO ( if /I "%_oslanguage%"=="de" ( set _mm=%%b ) ELSE ( set _mm=%%a ) ) call :weekday_check_year _yyyy %_yyyy% EXIT /b :weekday_check_year SETLOCAL set YY=%~2 if "%YY%"=="" FOR /F " usebackq tokens=1,2,3,4,* delims=./" %%a IN (`echo %date%`) DO set YY=%%c rem delete 0 as prefix set YY=x0%YY% set YY=%YY:x0=x% set YY=%YY:x0=x% set YY=%YY:x0=x% set YY=%YY:x=% if "%YY%" == "" set YY=0 if %YY% LEQ 30 ( if %YY% LEQ 9 ( set YY=200%YY% ) ELSE ( set YY=20%YY% ) ) ELSE ( if %YY% LEQ 99 set YY=19%YY% ) ENDLOCAL & IF "%~1" NEQ "" (SET %~1=%YY%) ELSE (echo.%YY%) EXIT /b :weekday_display echo. if /I "%_language_output%"=="de" ( echo Der %_dd%.%_mm%.%_cent%%_yy% ist ein %_www% ^(%_w%=%_ww%^) echo %_dayofyear%. Tag des Jahres in der KW %_cwy% if %_leapyear% EQU 1 ( echo Das Jahr %_yyyy% ist ein Schaltjahr ) ELSE ( echo Das Jahr %_yyyy% ist kein Schaltjahr ) ) ELSE ( echo The %_mm%/%_dd%/%_cent%%_yy% is a %_www% ^(%_w%=%_ww%^) echo %_dayofyear%. day of the year, calender week %_cwy% if %_leapyear% EQU 1 ( echo The Year %_yyyy% is a leap year ) ELSE ( echo The Year %_yyyy% is no leap year ) ) echo. EXIT /b :weekday_def_leapyear setlocal set _leapyear=0 set /a _l0=%_yyyy% / 4 set /a _l1=%_yyyy% - (%_l0% * 4) set /a _l0=%_yyyy% / 100 set /a _l2=%_yyyy% - (%_l0% * 100) set /a _l0=%_yyyy% / 400 set /a _l3=%_yyyy% - (%_l0% * 400) if %_l1% EQU 0 set _leapyear=1 if %_leapyear% EQU 1 if %_l2% EQU 0 set _leapyear=0 if %_l3% EQU 0 set _leapyear=1 endlocal & set _leapyear=%_leapyear% EXIT /b :weekday_def_daysb4 REM daysb4 = days before (Anzahl der Tage die in den vorherigen Monaten waren) if %_m% EQU 1 set _daysb4=0 if %_m% EQU 2 set _daysb4=31 if %_m% EQU 3 set /a _daysb4=31+28+%_leapyear% if %_m% EQU 4 set /a _daysb4=31+28+31+%_leapyear% if %_m% EQU 5 set /a _daysb4=31+28+31+30+%_leapyear% if %_m% EQU 6 set /a _daysb4=31+28+31+30+31+%_leapyear% if %_m% EQU 7 set /a _daysb4=31+28+31+30+31+30+%_leapyear% if %_m% EQU 8 set /a _daysb4=31+28+31+30+31+30+31+%_leapyear% if %_m% EQU 9 set /a _daysb4=31+28+31+30+31+30+31+31+%_leapyear% if %_m% EQU 10 set /a _daysb4=31+28+31+30+31+30+31+31+30+%_leapyear% if %_m% EQU 11 set /a _daysb4=31+28+31+30+31+30+31+31+30+31+%_leapyear% if %_m% EQU 12 set /a _daysb4=31+28+31+30+31+30+31+31+30+31+30+%_leapyear% set /a _dayofyear=%_d% + %_daysb4% EXIT /b :weekday_def_cwy REM cw = calender week (Kalenderwoche) setlocal set _wx=%_w% set _mm=1 set _dd=4 call :weekday_set_month_value call :weekday_set_year_value call :weekday_calc_weekday set /a _last_monday=%_wx% - 1 set /a _cw=((7 + 3 - %_last_monday% + (%_dayofyear% - 1) ) / 7 ) if %_cw% EQU 0 set /a _yyyy=%_yyyy%-1 if %_cw% EQU 0 call :weekday_def_leapyear if %_cw% EQU 0 set /a _cw=((365 + %_leapyear% + 7 + 3 - %_last_monday% + (%_dayofyear% - 1) ) / 7 ) endlocal & set _cw=%_cw%& set _cy=%_yyyy% REM if Calender week is 53 check if the day is in the first week of the new year REM Rule: Begin or end the year with a Thursday the year have 53 weeks REM if Day is week 53 and Day is 1,2 or 3 than week is 1st of the next year Rem cwoy = calender weeks of year Rem cwny = calender week new year if %_cw% EQU 53 ( set _cwoy=53 ) ELSE ( set _cwoy=52 ) if %_cwoy% EQU 53 call :weekday_check_if_year_begin_with_thu if %_cw% EQU 53 if %_cwoy% EQU 52 if %_w% LEQ 3 ( call :weekday_calc_new_cwy ) ELSE ( set _cwy=%_yyyy% ) EXIT /b :weekday_calc_new_cwy set _cw=1 set /a _cwny=%_yyyy%+1 EXIT /b :weekday_check_if_year_begin_with_thu REM check if year begins with a Thursday setlocal set _mm=1 set _dd=1 call :weekday_set_month_value call :weekday_set_year_value call :weekday_calc_weekday if not %_w% EQU 4 call :weekday_check_if_year_ends_with_thu endlocal & set _cwoy=%_cwoy% EXIT /b :weekday_check_if_year_ends_with_thu REM check if year ends with a Thursday setlocal set _mm=12 set _dd=31 call :weekday_set_month_value call :weekday_set_year_value call :weekday_calc_weekday if not %_w% EQU 4 set _cwoy=52 endlocal & set _cwoy=%_cwoy% EXIT /b REM ############################################################################ :jdate JD DateStr -- converts a date string to julian day number with respect to regional date format :: -- JD [out,opt] - julian days :: -- DateStr [in,opt] - date string, e.g. "03/31/2006" or "Fri 03/31/2006" or "31.3.2006" :$source http://www.dostips.com :: modified for german windows and weekday by Mark Wolfgruber SETLOCAL set TT=0 & set DD=0 & set MM=0 & set JJ=0 & set YY=0 set DateStr=%~2&if "%~2"=="" set DateStr=%date% for /f "skip=1 tokens=2-4 delims=(-)" %%a in ('"echo.|date"') do ( for /f "tokens=1-3 delims=/.- " %%A in ("%DateStr:* =%") do ( set %%a=%%A&set %%b=%%B&set %%c=%%C)) set /a dd=%TT%+%DD%, yy=%JJ%+%YY% set /a "yy=10000%yy% %%10000,mm=100%mm% %% 100,dd=100%dd% %% 100" rem if %yy% LSS 100 set /a yy+=2000 &rem Adds 2000 to two digit years call :weekday_check_year yy %yy% set /a JD=dd-32075+1461*(yy+4800+(mm-14)/12)/4+367*(mm-2-(mm-14)/12*12)/12-3*((yy+4900+(mm-14)/12)/100)/4 ENDLOCAL & IF "%~1" NEQ "" (SET %~1=%JD%) ELSE (echo.%JD%) EXIT /b :jdate2date JD YYYY MM DD -- converts julian days to gregorian date format :: -- JD [in] - julian days :: -- YYYY [out] - gregorian year, i.e. 2006 :: -- MM [out] - gregorian month, i.e. 12 for december :: -- DD [out] - gregorian day, i.e. 31 :$source http://www.dostips.com SETLOCAL ENABLEDELAYEDEXPANSION set /a L= %~1+68569, N= 4*L/146097, L= L-(146097*N+3)/4, I= 4000*(L+1)/1461001 set /a L= L-1461*I/4+31, J= 80*L/2447, K= L-2447*J/80, L= J/11 set /a J= J+2-12*L, I= 100*(N-49)+I+L set /a YYYY= I, MM=100+J, DD=100+K set MM=%MM:~-2% set DD=%DD:~-2% ( ENDLOCAL & REM RETURN VALUES IF "%~2" NEQ "" (SET %~2=%YYYY%) ELSE echo.%YYYY% IF "%~3" NEQ "" (SET %~3=%MM%) ELSE echo.%MM% IF "%~4" NEQ "" (SET %~4=%DD%) ELSE echo.%DD% ) EXIT /b REM ############################################################################ :weekday_help set _helpfile=%_thisfile%.help.txt echo. > %_helpfile% || set _helpfile=%tmp%\%_thisfile%.help.txt echo. > %_helpfile% || set _helpfile=^^^&2 echo Help: %_thisfile% >> %_helpfile% echo created by Mark Wolfgruber (600infos.de) >> %_helpfile% echo i advice to copy the script to "%ProgramFiles%\scripts\date\" >> %_helpfile% echo or better to your systempath e.g. in %%SystemRoot%%="%SystemRoot%\" >> %_helpfile% echo. >> %_helpfile% echo calculates the day of a week, calender week, leap year, day of year >> %_helpfile% echo and export this into set enviroment variables >> %_helpfile% echo Weekdays are 1=Monday, 7=Sunday >> %_helpfile% echo You can use the german (dd.mm.yyyy) or english (mm/dd/yyyy) date format >> %_helpfile% echo the year >> %_helpfile% echo. >> %_helpfile% echo FORMAT: %_thisfile% [Date] >> %_helpfile% echo starting without option the script will ask for a date >> %_helpfile% echo. >> %_helpfile% echo this Help: %_thisfile% /help >> %_helpfile% echo. >> %_helpfile% echo INFO: >> %_helpfile% echo (i'm searching for a good translation) >> %_helpfile% echo zweistellige Jahreszahlen 31-99 werden als 1931-1999 interprediert >> %_helpfile% echo ein- bzw. zweistellige Jahreszahlen 0-30 werden als 2000-2030 interprediert >> %_helpfile% echo wird keine Jahreszahl angegeben wird das aktuelle Jahr verwendet >> %_helpfile% echo wird kein Monat oder 0 angegeben wird das aktuelle Monat verwendet >> %_helpfile% echo wird kein Tag oder 0 angegeben wird der aktuelle Tag verwendet >> %_helpfile% echo wird nur 0 angegeben wird das aktuelle Datum verwendet >> %_helpfile% echo julian day number - works only between 1801 and 2099 >> %_helpfile% echo z.Zt. findet keine Pruefung auf unplausible Tage statt >> %_helpfile% echo. >> %_helpfile% echo Beispiele/Examples: >> %_helpfile% echo 1. des Monats: %_thisfile% 1. >> %_helpfile% echo 1st of the Month: %_thisfile% 0/1 >> %_helpfile% echo Heute/Today: %_thisfile% %%date%% >> %_helpfile% echo or %_thisfile% 0 >> %_helpfile% echo. >> %_helpfile% echo Example: weekday.cmd 17.03.09 >> %_helpfile% echo Output in SET Variables: >> %_helpfile% echo _cw=12 # calenderweek number >> %_helpfile% echo _cww=12 # calenderweek with leading 0 if less than 10 >> %_helpfile% echo _cwwy=12/2009 # calenderweek and year of calenderweek, >> %_helpfile% echo # ... with leading 0 if less than 10 >> %_helpfile% echo _cwy=12/2009 # calenderweek and year of calenderweek >> %_helpfile% echo _cwyw=2009_12 # year of calenderweek and calenderweek >> %_helpfile% echo _cy=2009 # calenderweek and year of calenderweek >> %_helpfile% echo _d=17 # day of the month, number >> %_helpfile% echo _date=2009-03-17 # date in the Form YYYY-MM-DD >> %_helpfile% echo _dayofyear=76 # day of the year number >> %_helpfile% echo _dd=17 # day of the month, with leading 0 if less than 10 >> %_helpfile% echo _jd=2454908 # julian day number >> %_helpfile% echo _language_output=de # language output, de or en >> %_helpfile% echo _leapyear=0 # if the year is a leapyear this var is 1 else 0 >> %_helpfile% echo _longdate=Dienstag, 17.03.2009 # Date in a long form, WWW, DD.MM.YYYY >> %_helpfile% echo _m=3 # month number >> %_helpfile% echo _mm=03 # month, with leading 0 if less than 10 >> %_helpfile% echo _w=2 # number of day in the week, 1=Monday, 7=Sunday >> %_helpfile% echo _ww=Di # weekday, shortform Mo,Di,Mi,Do,Fr,Sa,So >> %_helpfile% echo _www=Dienstag # weekday, longform >> %_helpfile% echo _cent=20 # Century >> %_helpfile% echo _y=9 # Year, number >> %_helpfile% echo _yy=09 # Year, 2 digits with leading 0 if less than 10>> %_helpfile% echo _yyyy=2009 # Year, 4 digit number >> %_helpfile% echo. >> %_helpfile% echo this helpfile: %_helpfile% >> %_helpfile% if not "%_helpfile%"=="^&2" if exist %_helpfile% more %_helpfile% endlocal goto weekday_end :weekday_clear_vars endlocal set _cent= set _cw= set _cww= set _cwwy= set _cwy= set _cy= set _cwyw= set _d= set _date= set _dayofyear= set _dd= set _jd= set _language_output= set _leapyear= set _longdate= set _m= set _mm= set _w= set _ww= set _www= set _y= set _yy= set _yyyy= goto weekday_end :weekday_end EXIT /b REM ############################################################################ REM ############################ END OF WEEKDAY ################################ REM ############################################################################ :end REM END OF FILE REM EXIT 0 rem pause
Help
- weekday.cmd.help.txt
Help: weekday.cmd created by Mark Wolfgruber (600infos.de) i advice to copy the script to "C:\Programme\scripts\date\" or better to your systempath e.g. in %SystemRoot%="C:\WINDOWS\" calculates the day of a week, calender week, leap year, day of year and export this into set enviroment variables Weekdays are 1=Monday, 7=Sunday You can use the german (dd.mm.yyyy) or english (mm/dd/yyyy) date format the year FORMAT: weekday.cmd [Date] starting without option the script will ask for a date this Help: weekday.cmd /help INFO: (i'm searching for a good translation) zweistellige Jahreszahlen 31-99 werden als 1931-1999 interprediert ein- bzw. zweistellige Jahreszahlen 0-30 werden als 2000-2030 interprediert wird keine Jahreszahl angegeben wird das aktuelle Jahr verwendet wird kein Monat oder 0 angegeben wird das aktuelle Monat verwendet wird kein Tag oder 0 angegeben wird der aktuelle Tag verwendet wird nur 0 angegeben wird das aktuelle Datum verwendet julian day number - works only between 1801 and 2099 z.Zt. findet keine Pruefung auf unplausible Tage statt Beispiele/Examples: 1. des Monats: weekday.cmd 1. 1st of the Month: weekday.cmd 0/1 Heute/Today: weekday.cmd %date% or weekday.cmd 0 Example: weekday.cmd 17.03.09 Output in SET Variables: _cw=12 # calenderweek number _cww=12 # calenderweek with leading 0 if less than 10 _cwwy=12/2009 # calenderweek and year of calenderweek, # ... with leading 0 if less than 10 _cwy=12/2009 # calenderweek and year of calenderweek _cwyw=2009_12 # year of calenderweek and calenderweek _cy=2009 # calenderweek and year of calenderweek _d=17 # day of the month, number _date=2009-03-17 # date in the Form YYYY-MM-DD _dayofyear=76 # day of the year number _dd=17 # day of the month, with leading 0 if less than 10 _jd=2454908 # julian day number _language_output=de # language output, de or en _leapyear=0 # if the year is a leapyear this var is 1 else 0 _longdate=Dienstag, 17.03.2009 # Date in a long form, WWW, DD.MM.YYYY _m=3 # month number _mm=03 # month, with leading 0 if less than 10 _w=2 # number of day in the week, 1=Monday, 7=Sunday _ww=Di # weekday, shortform Mo,Di,Mi,Do,Fr,Sa,So _www=Dienstag # weekday, longform _cent=20 # Century _y=9 # Year, number _yy=09 # Year, 2 digits with leading 0 if less than 10 _yyyy=2009 # Year, 4 digit number this helpfile: weekday.cmd.help.txt