Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
Kommentar vom Moderator Biber am 06.04.2011 um 18:42:41 Uhr
[Edit] Codeformatierung. [/Edit]

Wochentag ermitteln

Tipp Entwicklung Batch & Shell

Mitglied: MHI-LCT

MHI-LCT (Level 1) - Jetzt verbinden

06.04.2011, aktualisiert 18.10.2012, 6110 Aufrufe, 10 Kommentare

Hallo,

da ich hier beim Erstellen meines Sharepoint Backup Batches viel gelesen und gelernt habe, wollte ich nun auf diesem Wege einen Teil davon zur Verfügung stellen.

Das Script ermittelt den aktuellen Wochentag auf der Kommandozeile und sollte bis ins jahr 2099 passen, da ich nur einfche schaltjahr-Überprüfung genutzt habe. Natürlich freue ich mich auch über Verbesserungsvorschläge und anderweitige Kommentare!

01.
@echo off 
02.
:: ################## 
03.
:: datum ermitteln 
04.
:: und d,m,y zuweisen 
05.
:: ################## 
06.
date /T > d.txt 
07.
for /f "tokens=1,2,3 delims=. " %%i in (d.txt) do set /a y=%%k, m=%%j, d=%%i 
08.
del d.txt 
09.
:: ######################## 
10.
:: variablen initialisieren 
11.
:: ######################## 
12.
set /a c=0 
13.
set /a days=0 
14.
setlocal EnableDelayedExpansion  
15.
:: ########################## 
16.
:: Monate vom Jahresanfang  
17.
:: bis heute zusammenaddieren 
18.
:: ########################## 
19.
for %%i in (31,28,31,30,31,30,31,31,30,31,30,31) do ( 
20.
 set /a c=!c!+1 
21.
 if %m% GTR !c! (set /a days=!days!+%%i) 
22.
 set days=!days! 
23.
24.
:: ######################## 
25.
:: wenn Februar vorüber ist 
26.
:: und ein Schaltjahr +1 
27.
:: ######################## 
28.
if %y%%%4==0 ( 
29.
 if %m% GTR 2 (set /a days=!days!+1)) 
30.
:: ################################# 
31.
:: Tage vom Monatsanfang aufaddieren 
32.
:: ################################# 
33.
set /a days=!days!+%d% 
34.
:: ################################ 
35.
:: Wochentag in b schreiben 
36.
:: Referenztag ist der 31.12.2000 (Sonntag) 
37.
:: 0 = Sonntag, 1 = Montag .... usw 
38.
:: ################################ 
39.
set /a b=(((%y%-2001)/4+(%y%-2001)*365)+%days%)%%7 
40.
if %b%==0 echo Es ist Sonntag, der %d%.%m%.%y% 
41.
if %b%==1 echo Es ist Montag, der %d%.%m%.%y% 
42.
if %b%==2 echo Es ist Dienstag, der %d%.%m%.%y% 
43.
if %b%==3 echo Es ist Mittwoch, der %d%.%m%.%y% 
44.
if %b%==4 echo Es ist Donnerstg, der %d%.%m%.%y% 
45.
if %b%==5 echo Es ist Freitag, der %d%.%m%.%y% 
46.
if %b%==6 echo Es ist Samstag, der %d%.%m%.%y% 
47.
endlocal
Mitglied: bastla
06.04.2011, aktualisiert 18.10.2012
Hallo MHI-LCT und willkommen im Forum!

Schön, dass Du gleich mit einem Tipp als Forumsmitglied "einsteigst" - auch wenn es zum Thema schon diverse Ansätze zu finden gibt (zB hier und natürlich in Bibers einschlägigem Tutorial Workshop Batch for Runaways - Part III - Datums- und Zeitvariablen im Batch) ...

Eine Fastenzeit-Version hätte ich auch noch zu bieten:
01.
set G=%temp%\GetWeekDayName.vbs 
02.
>%G% echo WScript.Echo WeekDayName(WeekDay(Date)) 
03.
for /f %%i in ('cscript //nologo %G%') do set "WTag=%%i" 
04.
del %G% 
05.
for /f "tokens=1-3 delims=." %%i in ('date /t') do echo Es ist %WTag%, der %%i.%%j.%%k
- und da Du ja auch nach Verbesserungsvorschlägen fragtest: einen habe ich hier eingebaut.

Noch einer: Anstelle von
set /a c=!c!+1
könntest Du kürzer
set /a c+=1
schreiben ...

Grüße
bastla
Bitte warten ..
Mitglied: rubberman
09.04.2011 um 16:01 Uhr
Hallo Zusammen,

darf ich mitspielen ?

Kalenderelement per Batch:
01.
@echo off &setlocal enabledelayedexpansion &color f1 &title Kalender 
02.
 
03.
:: erster Tag der Woche (0 für Montag ... 6 für Sonntag) 
04.
set /a fDoW=0 
05.
 
06.
:: Variablen vordefinieren 
07.
set /a n=0 
08.
for %%a in (Mo Di Mi Do Fr Sa So) do ( 
09.
  set "wd_!n!=%%a" 
10.
  set /a n+=1 
11.
12.
set /a n=0 
13.
for %%a in ( 
14.
  Januar Februar Maerz April Mai Juni Juli August September Oktober November Dezember 
15.
) do ( 
16.
  set /a n+=1 
17.
  set "m_!n!=%%a" 
18.
  set "nm_%%a=!n!" 
19.
20.
 
21.
:: hole Jahr, Monat und Tag des derzeitigen Datums 
22.
call :GetDate cyy cmm cdd 
23.
set /a yy=cyy,mm=cmm,dd=cdd 
24.
 
25.
:mainloop 
26.
 
27.
:: hole die Anzahl Tage des Monats 
28.
call :DaysPerMonth %yy% %mm% DpM 
29.
 
30.
:: hole den Wochentag des ersten Tags im Monat 
31.
call :DayOfWeek %yy% %mm% 1 %fDoW% DoW 
32.
 
33.
:: Variable vordefinieren 
34.
set /a neededCells=DpM+DoW 
35.
 
36.
:: hole den Monatsname 
37.
call :MonthName %mm% mmmm 
38.
 
39.
:: erstelle den Inhalt der Kalendertabelle 
40.
set "header=%mmmm% %yy%                                " 
41.
set "header=%header:~,32%" 
42.
 
43.
for /l %%a in (1,1,7) do ( 
44.
  call :createWeekday %%a wd 
45.
  set "w_%%a=!wd!" 
46.
47.
 
48.
for /l %%a in (1,1,42) do ( 
49.
  call :createCell %%a cell 
50.
  set "c_%%a=!cell!" 
51.
52.
 
53.
 
54.
:choiceloop 
55.
 
56.
:: Kalendertabelle ausgeben 
57.
cls 
58.
echo( 
59.
echo( 
60.
echo(  ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ 
61.
echo(  ³                                  ³ 
62.
echo(  ³  %header%³  
63.
echo(  ³                                  ³ 
64.
echo(  ÃÄÄÄÄÂÄÄÄÄÂÄÄÄÄÂÄÄÄÄÂÄÄÄÄÂÄÄÄÄÂÄÄÄÄ´ 
65.
echo(  ³%w_1%³%w_2%³%w_3%³%w_4%³%w_5%³%w_6%³%w_7%³ 
66.
echo(  ÃÄÄÄÄÅÄÄÄÄÅÄÄÄÄÅÄÄÄÄÅÄÄÄÄÅÄÄÄÄÅÄÄÄÄ´ 
67.
echo(  ³%c_1%³%c_2%³%c_3%³%c_4%³%c_5%³%c_6%³%c_7%³ 
68.
echo(  ³%c_8%³%c_9%³%c_10%³%c_11%³%c_12%³%c_13%³%c_14%³ 
69.
echo(  ³%c_15%³%c_16%³%c_17%³%c_18%³%c_19%³%c_20%³%c_21%³ 
70.
echo(  ³%c_22%³%c_23%³%c_24%³%c_25%³%c_26%³%c_27%³%c_28%³ 
71.
echo(  ³%c_29%³%c_30%³%c_31%³%c_32%³%c_33%³%c_34%³%c_35%³ 
72.
echo(  ³%c_36%³%c_37%³%c_38%³%c_39%³%c_40%³%c_41%³%c_42%³ 
73.
echo(  ÀÄÄÄÄÁÄÄÄÄÁÄÄÄÄÁÄÄÄÄÁÄÄÄÄÁÄÄÄÄÁÄÄÄÄÙ 
74.
echo( 
75.
echo( 
76.
echo(ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ 
77.
 
78.
:: choice 
79.
set "month=" 
80.
echo  Springe zu Monat M oder MMMM oder M YYYY oder MMMM YYYY 
81.
echo  r (Reset), e (Exit) 
82.
echo( 
83.
set /p "month=Eingabe: " 
84.
if not defined month goto choiceloop 
85.
if /i "%month:~,1%"=="e" goto :eof 
86.
if /i "%month:~,1%"=="r" set "month=%cmm% %cyy%" 
87.
call :change %month% &goto mainloop 
88.
:: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ End Of Main ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
89.
 
90.
 
91.
:GetDate yOut mOut dOut 
92.
::  Output:  Jahr, Monat und Tag ohne vorangestellte Nullen 
93.
setlocal 
94.
for /f "tokens=3" %%a in ('reg query "HKCU\Control Panel\International" /v iDate') do set "iDate=%%a" 
95.
for /f "tokens=3" %%a in ('reg query "HKCU\Control Panel\International" /v sDate') do set "sDate=%%a" 
96.
for /f "tokens=2" %%i in ("%date%") do set "date=%%i" 
97.
for /f "tokens=1-3 delims=%sDate%" %%a in ("%date%") do ( 
98.
  if %iDate%==0 set /a mm=100%%a%%100,dd=100%%b%%100,yy=10000%%c%%10000 
99.
  if %iDate%==1 set /a dd=100%%a%%100,mm=100%%b%%100,yy=10000%%c%%10000 
100.
  if %iDate%==2 set /a yy=10000%%a%%10000,mm=100%%b%%100,dd=100%%c%%100 
101.
102.
endlocal &set "%~1=%yy%" &set "%~2=%mm%" &set "%~3=%dd%" 
103.
goto :eof 
104.
 
105.
:DaysPerMonth yyyyIn mmIn numOut 
106.
::  Output:  Anzahl Tage des übergebenen Monats. 
107.
setlocal 
108.
set /a yy=10000%~1%%10000,mm=100%~2%%100 
109.
if %yy% lss 100 set /a yy+=2000 
110.
set /a jd=31-32075+1461*(yy+4800+(mm-14)/12)/4+367*(mm-2-(mm-14)/12*12)/12-3*((yy+4900+(mm-14)/12)/100)/4 
111.
set /a l=jd+68569,n=4*l/146097,l=l-(146097*n+3)/4,i=4000*(l+1)/1461001,l=l-1461*i/4+31,j=80*l/2447,k=l-2447*j/80,x=31-k 
112.
if %x%==0 set "x=31" 
113.
endlocal &set "%~3=%x%" 
114.
goto :eof 
115.
 
116.
:DayOfWeek yyyyIn mmIn ddIn firstDayOfWeekIn numOut 
117.
::  für Input:   firstDayOfWeekIn ist 0 wenn Montag ... 6 wenn Sonntag 
118.
::  Output:  0 (erster Tag der Woche)  ...  6 (letzter Tag der Woche) 
119.
setlocal 
120.
set /a yy=10000%~1%%10000,mm=100%~2%%100,dd=100%~3%%100 
121.
if %yy% lss 100 set /a yy+=2000 
122.
set /a z=14-mm,z/=12,y=yy+4800-z,m=mm+12*z-3,DoW=153*m+2,DoW=DoW/5+dd+y*365+y/4-y/100+y/400-2472630-%~4,DoW%%=7 
123.
endlocal &set "%~5=%DoW%" 
124.
goto :eof 
125.
 
126.
:MonthName mmIn mmmmOut 
127.
::  Output:  Monatsname (String) des übergebenen Monats (Zahl). 
128.
setlocal enabledelayedexpansion 
129.
set /a mm=100%~1%%100 
130.
set "mmmm=!m_%mm%!" 
131.
endlocal &set "%~2=%mmmm%" 
132.
goto :eof 
133.
 
134.
:createWeekday 
135.
setlocal enabledelayedexpansion 
136.
:: Erstellt den Wochentag abhängig von der fDoW Einstellung. 
137.
set /a x=%~1+fDoW-1,x%%=7 
138.
set "wd=!wd_%x%!" 
139.
endlocal &set "%~2= %wd% " 
140.
goto :eof 
141.
 
142.
:createCell 
143.
::  Erstellt den Inhalt der Zellen der Kalendertabelle. 
144.
setlocal enabledelayedexpansion 
145.
set "cell=    " 
146.
set /a day=%~1-DoW 
147.
if %1 gtr %DoW% ( 
148.
  if %~1 leq %neededCells% ( 
149.
    set "sday= %day%" 
150.
    set "cell= !sday:~-2! " 
151.
    if %day%==%dd% ( 
152.
      if %mm%==%cmm% ( 
153.
        if %yy%==%cyy% ( 
154.
          set "cell=*!sday:~-2!*" 
155.
156.
157.
158.
159.
160.
endlocal &set "%~2=%cell% 
161.
goto :eof 
162.
 
163.
:change 
164.
::  Ändert den Monat 
165.
setlocal enabledelayedexpansion 
166.
set "m=" &set "y=" 
167.
for /f "tokens=1,2" %%a in ("%~1 %~2") do (set "m=%%a" &set "y=%%b") 
168.
set "nm=!nm_%m%!" 
169.
if defined nm ( 
170.
  set /a mm=nm 
171.
) else ( 
172.
  set /a m=100!m!%%100 2>nul 
173.
  if !m! gtr 0 (if !m! lss 13 set /a mm=m) 
174.
175.
if defined y ( 
176.
  set /a y=y 2>nul 
177.
  if !y! geq 1900 if !y! leq 2100 set /a yy=y 
178.
179.
endlocal &set "mm=%mm%" &set "yy=%yy%" 
180.
goto :eof
Das Ding ist natürlich zum Einschlafen langsam, da ich versucht habe mich auf Batch pur zu beschränken ...

Grüße
rubberman

<edit>
@Biber
Danke für die Blumen
Bei der Gelegenheit habe ich die Variablen in Zeile 100 noch gerade gerückt.
</edit>
Bitte warten ..
Mitglied: Biber
09.04.2011 um 21:32 Uhr
Moin rubberman,
und natürlich auch moin MHI-LCT und moin bastla,

das ist doch wirklich eine sehr nette Fingerübung.
Die werde gern weiterempfehlen.

Weil der Charme deines MacGuwyer-Kalenders ja gar nicht richtig rüberkommt ohne den Output, trage ich den mal nach:
 
 
  ┌──────────────────────────────────┐ 
  │                                  │ 
  │  November 2066                   │ 
  │                                  │ 
  ├────┬────┬────┬────┬────┬────┬────┤ 
  │ Mo │ Di │ Mi │ Do │ Fr │ Sa │ So │ 
  ├────┼────┼────┼────┼────┼────┼────┤ 
  │  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 │    │    │    │    │    │ 
  │    │    │    │    │    │    │    │ 
  └────┴────┴────┴────┴────┴────┴────┘ 
 
 
─────────────────────────────────────── 
 Springe zu Monat M oder MMMM oder M YYYY oder MMMM YYYY 
 r (Reset), e (Exit) 
 
Eingabe: 
 
Danke für dieses Beispiel.
Biber
Bitte warten ..
Mitglied: bastla
10.04.2011 um 18:16 Uhr
Hallo rubberman!
darf ich mitspielen ?
"Spielen" ist genau das richtige Wort ...

... und das Ergebnis kann sich sehen lassen (hybsch ist es dabei auch noch).

Grüße
bastla
Bitte warten ..
Mitglied: rubberman
10.04.2011 um 18:53 Uhr
Danke, bastla.

Natürlich ist das nur Spielerei. Andererseits kann man sich einzelne Funktionen des Codes zu Nutze machen um ähnliche Lösungen zu entwickeln. So sollte dies ...
01.
@echo off &setlocal enabledelayedexpansion 
02.
:: Variablen vordefinieren 
03.
set /a n=0 
04.
for %%a in (Montag Dienstag Mittwoch Donnerstag Freitag Samstag Sonntag) do ( 
05.
  set "wd_!n!=%%a" 
06.
  set /a n+=1 
07.
08.
:: hole Jahr, Monat und Tag des derzeitigen Datums 
09.
call :GetDate yy mm dd 
10.
:: hole den Wochentag des derzeitigen Datums 
11.
call :DayOfWeek %yy% %mm% %dd% 0 DoW 
12.
:: Ausgabe 
13.
echo Es ist !wd_%DoW%!, der %dd%.%mm%.%yy%. 
14.
pause>nul 
15.
goto :eof 
16.
:: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ End Of Main ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
17.
 
18.
:GetDate yOut mOut dOut 
19.
::  Output:  Jahr, Monat und Tag ohne vorangestellte Nullen 
20.
setlocal 
21.
for /f "tokens=3" %%a in ('reg query "HKCU\Control Panel\International" /v iDate') do set "iDate=%%a" 
22.
for /f "tokens=3" %%a in ('reg query "HKCU\Control Panel\International" /v sDate') do set "sDate=%%a" 
23.
for /f "tokens=2" %%i in ("%date%") do set "date=%%i" 
24.
for /f "tokens=1-3 delims=%sDate%" %%a in ("%date%") do ( 
25.
  if %iDate%==0 set /a mm=100%%a%%100,dd=100%%b%%100,yy=10000%%c%%10000 
26.
  if %iDate%==1 set /a dd=100%%a%%100,mm=100%%b%%100,yy=10000%%c%%10000 
27.
  if %iDate%==2 set /a yy=10000%%a%%10000,mm=100%%b%%100,dd=100%%c%%100 
28.
29.
endlocal &set "%~1=%yy%" &set "%~2=%mm%" &set "%~3=%dd%" 
30.
goto :eof 
31.
 
32.
:DayOfWeek yyyyIn mmIn ddIn firstDayOfWeekIn numOut 
33.
::  für Input:   firstDayOfWeekIn ist 0 wenn Montag ... 6 wenn Sonntag 
34.
::  Output:  0 (erster Tag der Woche)  ...  6 (letzter Tag der Woche) 
35.
setlocal 
36.
set /a yy=10000%~1%%10000,mm=100%~2%%100,dd=100%~3%%100 
37.
if %yy% lss 100 set /a yy+=2000 
38.
set /a z=14-mm,z/=12,y=yy+4800-z,m=mm+12*z-3,DoW=153*m+2,DoW=DoW/5+dd+y*365+y/4-y/100+y/400-2472630-%~4,DoW%%=7 
39.
endlocal &set "%~5=%DoW%" 
40.
goto :eof
... in etwa das ausgeben, was MHI-LCT und Du mit euren Codes bezweckt.
Schwierig ist bei Batchlösungen immer die unterschiedliche Formatierung des Datums. Ich hab's mal mit dem Lesen der Registry versucht, um das Datum möglichst richtig aufzudröseln.
Die Schaltjahrbehandlung von MHI-LCT scheint mir zudem auch falsch zu sein. Es sind eben nicht alle dur 4 ganzzahlig teilbaren Jahre Schaltjahre, da gab's noch eine Regel, wie volle Jahrhunderte zu behandeln sind

Grüße
rubberman
Bitte warten ..
Mitglied: bastla
10.04.2011 um 19:01 Uhr
Hallo rubberman!
Die Schaltjahrbehandlung von MHI-LCT scheint mir zudem auch falsch zu sein.
da gab's noch eine Regel, wie volle Jahrhunderte zu behandeln sind
Deshalb hat MHI-LCT ja auch die Einschränkung auf sollte bis ins jahr 2099 passen vorgenommen ...

... und obwohl natürlich auch die Überprüfung der restlosen Teilbarkeit durch 100 und dann durch 400 sicher auch für ihn kein Problem wäre, gehe ich stark davon aus, dass sein Batch kein "Jahr 2400-Problem" verursachen wird ...

Grüße
bastla
Bitte warten ..
Mitglied: rubberman
10.04.2011 um 19:10 Uhr
Zitat von bastla:
Deshalb hat MHI-LCT ja auch die Einschränkung auf sollte bis ins jahr 2099 passen vorgenommen ...

OOOPS, hab ich überlesen, sorry MHI-LCT. Ja dann...

Grüße
rubberman
Bitte warten ..
Mitglied: Biber
10.04.2011 um 19:51 Uhr
{OT]
Moin bastla, rubberman und alle anderen unbeschwert Spielenden,
Zitat von bastla:
... und obwohl natürlich auch die Überprüfung der restlosen Teilbarkeit durch 100 und dann durch 400 sicher auch
für ihn kein Problem wäre, gehe ich stark davon aus, dass sein Batch kein "Jahr 2400-Problem" verursachen wird
...
Oder war es vielleicht die Teilbarkeit durch 100, aber nicht durch 400? *grybel*
Aber die gute Nachricht ist: es wird wahrscheinlich in der Tat kein "Jahr-2400-Problem" geben.

Der gemeinsam von den Mayas, Roland Emmerich und TEPCO entwickelte Kalender endet im Jahr 2012,
Das allerdings ist ein auch der Batchprogrammierung zu berücksichtigendes Schaltjahr.

Grüße und schönen Restsonntag
[/OT]
Bitte warten ..
Mitglied: MHI-LCT
11.04.2011 um 08:53 Uhr
Oh, hier ist ja eine ganz schöne Diskussion entbrannt! ;)
Damit habe ich nun nicht gerechnet!

Und ja, mir ist bewusst, dass Vielfache von 100 keine Schaltjahre sind obwohl sie auch durch 4 teilbar sind und Vielfache von 400 wieder doch Schaltjahre darstellen, obwohl sie durch 100 teilbar sind! ;) Das liegt wohl daran, dass die Erde nicht ganz "rund" um die Sonne kreist und nochdazu, nach einer umrundung, unsere Kugel nicht wieder in der "0:00Uhr-Ausgangsposition" angekommen ist, sondern etwa 6Std, nen paar minuten und sekunden daneben. Daher auch das Schaltjahr alle 4 Jahre. (4*6Std = 24Std => 1Tag)

Dazu fällt mir ein, dass ich mal eine Funktion geschrieben hatte, die den Geburtstag von "29.Feb"-Kandidaten auf den entsprechenden Tag umrechnet. Also die Dauer der Erdumrundung um die Sonne als 1Jahr annimmt und so festlegt, wann die Erde wieder an der Stelle steht, als der Mensch geboren wurde und den entsprechenden Tag dazu ermittelt. Ist hin und wieder der 28.02 und manchmal eben der 01.03. Es sei denn es ist ein Schaltjahr.
Wenn ich es noch wieder finde, poste ich es mal.

Gruß, MHI

<edit>
Dazu fällt mir jetzt grade noch ein "Schmarn" ein, den ich mal aus langer Weile programmiert hatte:
http://halfadayinnorway.ha.funpic.de/rot.html
</edit>
Bitte warten ..
Mitglied: Skyemugen
11.04.2011 um 16:24 Uhr
Zitat von MHI-LCT:
<edit>
Dazu fällt mir jetzt grade noch ein "Schmarn" ein, den ich mal aus langer Weile programmiert hatte:
http://halfadayinnorway.ha.funpic.de/rot.html
</edit>

Aloha, [OT]

was ist denn eine Ainimation? Du musst da echt mal Langeweile gehabt haben *g*

greetz André
Bitte warten ..
Neuester Wissensbeitrag
Festplatten, SSD, Raid

12TB written pro SSD in 2 Jahren mit RAID5 auf Hyper-VServer

Erfahrungsbericht von Lochkartenstanzer zum Thema Festplatten, SSD, Raid ...

Ähnliche Inhalte
DNS
Hostnames für mehrere IPs ermitteln (3)

Frage von Oneil-1989 zum Thema DNS ...

Mac OS X
gelöst 500 Wordfiles die jeweilige Anzahl an Wörtern ermitteln (26)

Frage von xp-user zum Thema Mac OS X ...

Router & Routing
gelöst Netzwerkbelastung ermitteln (6)

Frage von Azubine zum Thema Router & Routing ...

Windows Installation
gelöst Win10 Build einer Installations-ISO ermitteln (9)

Frage von chiefteddy zum Thema Windows Installation ...

Heiß diskutierte Inhalte
Windows Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (34)

Frage von patz223 zum Thema Windows Userverwaltung ...

LAN, WAN, Wireless
gelöst Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (28)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (21)

Frage von DavidGl zum Thema LAN, WAN, Wireless ...

Viren und Trojaner
Aufgepasst: Neue Ransomware Goldeneye verbreitet sich rasant (20)

Link von Penny.Cilin zum Thema Viren und Trojaner ...