Skip to content

Commit

Permalink
Added Refomationstag 2017 as a public holiday in all states. It is a …
Browse files Browse the repository at this point in the history
…one time public holiday in 2017 in those states, that usually do not include the Refomationstag. Readon is 500 years of Refomation.
  • Loading branch information
wlbr committed Dec 25, 2016
1 parent afe576d commit b7888c6
Show file tree
Hide file tree
Showing 4 changed files with 68 additions and 10 deletions.
42 changes: 42 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
# unifying the coding style for different editors and IDEs => editorconfig.org

; indicate this is the root of the project
root = true

###########################################################
; common
###########################################################

[*]
charset = utf-8

end_of_line = LF
insert_final_newline = true
trim_trailing_whitespace = true

indent_style = space
indent_size = 2

###########################################################
; make
###########################################################

[{Makefile, makefile, GNUmakefile}]
indent_style = tab
indent_size = 4

###########################################################
; markdown
###########################################################

[*.md *.mdown]
#trim_trailing_whitespace = false

###########################################################
; golang
###########################################################

[*.go]
indent_style = tab
indent_size = 4

22 changes: 13 additions & 9 deletions Makefile
Original file line number Diff line number Diff line change
@@ -1,25 +1,29 @@

all: clean test build buildcmd

.PHONY: clean
clean:
rm -f feiertage
clean:
rm -f feiertage
rm -rf bin/

run:
go run cmd/feiertage/command.go -region baden-württemberg 2016

test:
run:
go run cmd/feiertage/feiertage.go -region baden-württemberg 2016

debug:
dlv debug cmd/feiertage/feiertage.go -- -region baden-württemberg 2016


test:
go test

build: feiertage.go region.go
go build ./...

buildcmd: feiertage.go region.go cmd/feiertage/feiertage.go
mkdir -p bin
GOOS=linux GOARCH=amd64 go build -o bin/feiertage_linux_x86_64 cmd/feiertage/feiertage.go
GOOS=darwin GOARCH=amd64 go build -o bin/feiertage_osx_x86_64 cmd/feiertage/feiertage.go
GOOS=windows GOARCH=386 go build -o bin/feiertage_win32 cmd/feiertage/feiertage.go
GOOS=windows GOARCH=amd64 go build -o bin/feiertage_win64 cmd/feiertage/feiertage.go


8 changes: 7 additions & 1 deletion region.go
Original file line number Diff line number Diff line change
Expand Up @@ -27,9 +27,14 @@ func createFeiertagsList(y int, ffun []func(int) Feiertag) []Feiertag {
feiern := []func(int) Feiertag{Neujahr, Karfreitag, Ostermontag,
TagDerArbeit, ChristiHimmelfahrt, PfingstMontag,
TagDerDeutschenEinheit, Weihnachten, ZweiterWeihnachtsfeiertag}
if y == 2017 { // in 2017 the Reformationstag is a one time feiertag in all states
feiern = append(feiern, Reformationstag)
}

for _, f := range ffun {
feiern = append(feiern, f)
if (y != 2017) || (f(y).Text != Reformationstag(y).Text) {
feiern = append(feiern, f)
}
}
feiertermine := []Feiertag{}
for _, f := range feiern {
Expand Down Expand Up @@ -163,6 +168,7 @@ func All(y int, inklSonntage ...bool) Region {
MariäHimmelfahrt, Reformationstag, Halloween, BeginnWinterzeit,
Allerheiligen, Allerseelen, Martinstag, Karnevalsbeginn, BußUndBettag, Thanksgiving,
Blackfriday, Volkstrauertag, Nikolaus, MariäUnbefleckteEmpfängnis, Heiligabend, Silvester}

if len(inklSonntage) == 0 || inklSonntage[0] == true {
ffun = append(ffun, Karnevalssonntag, Palmsonntag, Ostern, Pfingsten,
Dreifaltigkeitssonntag, Erntedankfest, Totensonntag, ErsterAdvent, ZweiterAdvent,
Expand Down
6 changes: 6 additions & 0 deletions region_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -41,4 +41,10 @@ func TestFeiertageZahl(t *testing.T) {
checkAndFailRegionFeiertageZahl(t, Deutschland(2016), 9)
checkAndFailRegionFeiertageZahl(t, All(2016), 50)
checkAndFailRegionFeiertageZahl(t, All(2016, false), 39)
//check Reformationstag 2017
checkAndFailRegionFeiertageZahl(t, BadenWürttemberg(2017), 13)
checkAndFailRegionFeiertageZahl(t, Bayern(2017), 13)
checkAndFailRegionFeiertageZahl(t, Brandenburg(2017), 12)
checkAndFailRegionFeiertageZahl(t, Deutschland(2017), 10)

}

0 comments on commit b7888c6

Please sign in to comment.