2011-10-11, 21:24
  #1
Medlem
Behöver veta hur många av årets helgdagar som infaller under måndag - fredag under ett genomsnittligt år.

Med helgdagar menar jag:

Nyårsdagen
Trettondagsafton
Trettondagen
Skärtorsdag*
Långfredag*
Annandag Påsk*
Kristi Himmelfärds dag*
Pingst*
Nationaldagen
Midsommarafton
Allhelgona
Julafton
Juldagen
Annandag Jul
Nyårsafton

*=infaller alltid på samma veckodag

Om någon har någon listig formel som kan räkna ut hur många gånger respektive helgdag infaller på en veckodag (M-F) under de kommande 100 åren så skulle jag bli glad.
Citera
2011-10-12, 01:51
  #2
Medlem
Aja Bajas avatar
Jag vet inte genomsnittet, men det är ju ganska enkelt att räkna efter om man bara har en kalender som visar helgdagar över hela året på en sida.

Här är ett exempel. Bara att börja räkna.
http://www.dinstartsida.se/kalender/helgdagar/
Citera
2011-10-12, 12:42
  #3
Medlem
Asgarvads avatar
Helgdagar typ jul och nyår och nationaldagen infaller till 5/7 på måndag-fredag och till 2/7 på lördag-söndag.
Till exempel: På hundra år infaller nationaldagen in 28.6 gånger på lördag-söndag.
__________________
Senast redigerad av Asgarvad 2011-10-12 kl. 12:44.
Citera
2011-10-12, 13:59
  #4
Medlem
jolindbes avatar
Nu fattar jag inte riktigt ditt urval av dagar, Påskdagen och Midsommardagen borde ju vara med (men spelar ingen roll då det alltid är söndag resp lördag), men Skärtorsdagen och Trettondagsafton är väl inga helgdagar? Första maj är också en relevant dag som borde vara med. Nåväl, med dina parametrar då:

Följande dagar inträffar alltid på L/S: Pingstdagen (S), Alla helgons dag(L) (som borde ha en stjärna i din lista).
Följande dagar inträffar alltid M-F: Skärtorsdag (To), Långfredag (F), Annandag Påsk (M), Kristi Him (To), Midsommardagsafton (F) (saknar också stjärna ovan).
Följande dagar varierar jämnt mellan veckodagarna: Nyårsdagen, Trettondagsafton, Trettondagen, Nationaldagen, Julafton, Juldagen, Annandag Jul och Nyårsafton.

Alltså: 5 helgdagar alltid på vardag, 8 helgdagar jämnt utspridda som är på vardag 5/7 år.

Totalt i snitt 5+8*5/7 = 10,7 helgdagar på vardagar per år.

Men jag vill mena att din uppfattning om helgdag inte stämmer överens med svensk praxis, så sanningen ser nog lite annorlunda ut. Räknar man bara de Allmänna Helgdagarna så blir det 3 som alltid är på vardagar och 6 som varierar, dvs 7,3 per år. Räknar man också in de allmänt lediga dagarna (jul- nyårs- och midsommarafton) blir det 4 på vardagar och 8 som varierar, dvs 9,7 per år. Se förteckning här: http://sv.wikipedia.org/wiki/Helgdag

Slutligen finns det ju ett mönster mellan helgdagarna, så att vissa år har många fler än 10 helgdagar på vardag och vissa många färre. Det finns ju för övrigt bara 14 olika varianter (året börjar på M-S, samt skottår eller ej), så man skulle kunna räkna ut varje möjligt utfall, konstatera hur vanligt varje utfall är, och på så sätt få ett medianvärde snarare än detta medelvärde, om nu det är relevant.
Citera
2011-10-12, 15:16
  #5
Medlem
Dessutom så är den gregorianska kalendern, men sina extraregler vart 100:e och vart 400:e år faktiskt utformad så att fenomenet "vilken veckodag hamnar ett specifikt datum på" en period om 400:e år. 400*5/7 är inte ens ett heltal, så det kan omöjligen vara så att t.ex. juldagen infaller på en vardag exakt 5/7 av gånger, i långa loppet.
Citera
2011-10-12, 15:25
  #6
Medlem
jolindbes avatar
Citat:
Ursprungligen postat av dbshw
Dessutom så är den gregorianska kalendern, men sina extraregler vart 100:e och vart 400:e år faktiskt utformad så att fenomenet "vilken veckodag hamnar ett specifikt datum på" en period om 400:e år. 400*5/7 är inte ens ett heltal, så det kan omöjligen vara så att t.ex. juldagen infaller på en vardag exakt 5/7 av gånger, i långa loppet.

I det verkligt långa loppet (på 7*400=2800 år) kommer juldagen att infalla på en vardag exakt 5/7 gånger.
Citera
2011-10-12, 17:10
  #7
Medlem
Citat:
Ursprungligen postat av jolindbe
I det verkligt långa loppet (på 7*400=2800 år) kommer juldagen att infalla på en vardag exakt 5/7 gånger.

Fast det är väl just det det inte gör? Eftersom allting upprepar sig vart 400:e år, så behöver man bara kolla på 400-årsperioder, och då kan omöjligen juldagen infalla på en vardag exakt 5/7 gånger.

Mina beräkningar gör t.ex. gällande att sannolikheten att juldagen infaller på en viss veckodag, i långa loppet, är

Måndag: 57/400
Tisdag: 58/400
Onsdag: 56/400
Torsdag: 58/400
Fredag: 56/400
Lördag: 58/400
Söndag: 57/400.

Kod för beräkningen (Python):

Kod:
from datetime import date

def weekday(y,m,d):
  return date(y,m,d).isoweekday()

counts = [0]*7
for y in range(2000,2400):
  counts[weekday(y,12,15)-1]+=1

print counts

Även om du ändrar till t.ex. att räkna i årtalsintervallet [2000, 4800) så ser du att det inte blir lika många gånger på varje veckodag.
Citera
2011-10-13, 21:31
  #8
Medlem
jolindbes avatar
Citat:
Ursprungligen postat av dbshw
Fast det är väl just det det inte gör? Eftersom allting upprepar sig vart 400:e år, så behöver man bara kolla på 400-årsperioder, och då kan omöjligen juldagen infalla på en vardag exakt 5/7 gånger.

Mina beräkningar gör t.ex. gällande att sannolikheten att juldagen infaller på en viss veckodag, i långa loppet, är

Måndag: 57/400
Tisdag: 58/400
Onsdag: 56/400
Torsdag: 58/400
Fredag: 56/400
Lördag: 58/400
Söndag: 57/400.

Kod för beräkningen (Python):

Kod:
from datetime import date

def weekday(y,m,d):
  return date(y,m,d).isoweekday()

counts = [0]*7
for y in range(2000,2400):
  counts[weekday(y,12,15)-1]+=1

print counts

Även om du ändrar till t.ex. att räkna i årtalsintervallet [2000, 4800) så ser du att det inte blir lika många gånger på varje veckodag.

Ursäkta att jag dröjt. Givetvis har du rätt. Det hela beror på att antalet dagar på 400 år råkar vara delbart med sju (närmare bestämt är det 146097 dagar på 400 år). Alltså är 1 januari 1900 samma veckodag som 1 januari 2300, och därför blir vissa veckodagar något vanligare än andra på alla datum.

Jag kunde inte låta bli att göra en liten kod jag också (här använder jag Wikipedias definition av helgdag och allmänt ledig dag, istället för TS):

Kod:
from datetime import date
import numpy

def weekday(y,m,d):
  return date(y,m,d).isoweekday()

# Helgdagar och allmaent lediga dagar som byter veckodag
helg_varierar = [[1,1],[6,1],[1,5],[6,6],[25,12],[26,12],[24,12],[31,12]]

# Helgdagar och allmaent lediga dagar som alltid infaller paa vardag
helg_vardag = 4

vardagshelg = []

# Anvand en cykel pa 400 ar eftersom det sedan repeterar sig
for y in range(2000,2400):
	vardagshelg.append(helg_vardag)
	for day in helg_varierar:
		if weekday(y,day[1],day[0]) < 6:
			vardagshelg[y-2000] += 1

print('Minst ' + str(min(vardagshelg)) + ' lediga vardagar per aar')
print('Max ' +  str(max(vardagshelg)) + ' lediga vardagar per aar')
print('I genomsnitt ' +  str(numpy.average(vardagshelg)) + ' lediga vardagar per aar')
print('Median: ' +  str(numpy.median(vardagshelg)) + ' lediga vardagar per aar')

Den ger:
Minst 7 lediga vardagar per aar
Max 12 lediga vardagar per aar
I genomsnitt 9.72 lediga vardagar per aar
Median: 10.0 lediga vardagar per aar

Alltså kan alla lediga dagar som flyttar på sig bland veckodagarna hamna på en vardag samma år (EDIT: Detta sker 43 av 400 år). Som minst hamnar tre av dessa åtta på vardagar (EDIT: Detta sker också 43 av 400 år).
__________________
Senast redigerad av jolindbe 2011-10-13 kl. 21:33.
Citera

Skapa ett konto eller logga in för att kommentera

Du måste vara medlem för att kunna kommentera

Skapa ett konto

Det är enkelt att registrera ett nytt konto

Bli medlem

Logga in

Har du redan ett konto? Logga in här

Logga in