rholidays 0.1.0 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/History.txt +6 -1
- data/README.txt +9 -0
- data/lib/holidays.rb +58 -72
- data/version.txt +1 -1
- metadata +6 -10
- data/README.md +0 -64
- data/test/check_spreadsheet.rb +0 -117
- data/test/ferien_free.ods +0 -0
- data/test/ferien_paid - Kopie.ods +0 -0
data/History.txt
CHANGED
data/README.txt
CHANGED
@@ -4,16 +4,22 @@
|
|
4
4
|
|
5
5
|
Rholidays ermittelt Ferientermine (zum Beispiel Sommerferien in Bayern im Jahr 2011)
|
6
6
|
|
7
|
+
== Unterstützung dieses Projekts
|
8
|
+
|
9
|
+
Dieses Gem kann frei verwendet werden. Um die weitere Entwicklung und Aktualisierungen zu gewährleisten, kann dieses Projekt per Bitcoin unterstützt werden - Adresse hierfür: 1H6n4m7rJzMmdMspmfkAxuX79tsZnGkN94
|
10
|
+
|
7
11
|
== Features
|
8
12
|
|
9
13
|
* Liste der unterstützten Länder
|
10
14
|
* Liste der definierten Regionen (in Deutschland die Bundesländer) je Land
|
11
15
|
* Liste der Ferienarten je Land
|
16
|
+
* Liste der Ferienarten je Land und nur für bestimmte Region (z. B. Hessen)
|
12
17
|
* Ermitteln eines spezifischen Ferientyps (z.B. Sommerferien Bayern in Deutschland für 2011)
|
13
18
|
* Momentan sind die Länder Deutschland und Österreich implementiert
|
14
19
|
|
15
20
|
== Beispiele
|
16
21
|
|
22
|
+
require 'rubygems'
|
17
23
|
require 'rholidays'
|
18
24
|
|
19
25
|
# Sommerferien 2011 in Berlin (Deutschland)
|
@@ -42,6 +48,9 @@ Rholidays ermittelt Ferientermine (zum Beispiel Sommerferien in Bayern im Jahr 2
|
|
42
48
|
# Ferienarten für ein Land:
|
43
49
|
ferienarten = Holidays.holiday_types(:de)
|
44
50
|
#=> [:winter, :ostern, :pfingsten, :sommer, :herbst, :weihnachten]
|
51
|
+
# Ferienarten nur fuer eine Region (kann anders als fuer andere Regionen sein)
|
52
|
+
ferienarten = Holidays.holiday_types(:de, :hessen)
|
53
|
+
#=> [:ostern, :sommer, :herbst, :weihnachten]
|
45
54
|
|
46
55
|
== Installation
|
47
56
|
|
data/lib/holidays.rb
CHANGED
@@ -17,9 +17,37 @@ class Holidays
|
|
17
17
|
:salzburg,:steiermark, :tirol, :vorarlberg, :wien]
|
18
18
|
HOLIDAY_CODES_AT =
|
19
19
|
[:weihnachten, :semester, :ostern, :pfingsten, :sommer]
|
20
|
-
|
20
|
+
TYPES={
|
21
|
+
[:de,:baden_wuerttemberg] => [:ostern,:pfingsten,:sommer,:herbst,:weihnachten],
|
22
|
+
[:de,:bayern] => [:winter,:ostern,:pfingsten,:sommer,:herbst,:weihnachten],
|
23
|
+
[:de,:berlin] => [:winter,:ostern,:pfingsten,:sommer,:herbst,:weihnachten],
|
24
|
+
[:de,:brandenburg] => [:winter,:ostern,:pfingsten,:sommer,:herbst,:weihnachten],
|
25
|
+
[:de,:bremen] => [:winter,:ostern,:pfingsten,:sommer,:herbst,:weihnachten],
|
26
|
+
[:de,:hamburg] => [:winter,:ostern,:pfingsten,:sommer,:herbst,:weihnachten],
|
27
|
+
[:de,:hessen] => [:ostern,:sommer,:herbst,:weihnachten],
|
28
|
+
[:de,:mecklenburg_vorpommern] => [:winter,:ostern,:pfingsten,:sommer,:herbst,:weihnachten],
|
29
|
+
[:de,:niedersachsen] => [:winter,:ostern,:pfingsten,:sommer,:herbst,:weihnachten],
|
30
|
+
[:de,:nordrhein_westfalen] => [:ostern,:pfingsten,:sommer,:herbst,:weihnachten],
|
31
|
+
[:de,:rheinland_pfalz] => [:ostern,:sommer,:herbst,:weihnachten],
|
32
|
+
[:de,:saarland] => [:winter,:ostern,:sommer,:herbst,:weihnachten],
|
33
|
+
[:de,:sachsen] => [:winter,:ostern,:pfingsten,:sommer,:herbst,:weihnachten],
|
34
|
+
[:de,:sachsen_anhalt] => [:winter,:ostern,:pfingsten,:sommer,:herbst,:weihnachten],
|
35
|
+
[:de,:schleswig_holstein] => [:ostern,:pfingsten,:sommer,:herbst,:weihnachten],
|
36
|
+
[:de,:thueringen] => [:winter,:ostern,:pfingsten,:sommer,:herbst,:weihnachten],
|
37
|
+
|
38
|
+
[:at,:burgenland] => [:semester,:ostern,:pfingsten,:sommer,:weihnachten],
|
39
|
+
[:at,:kaernten] => [:semester,:ostern,:pfingsten,:sommer,:weihnachten],
|
40
|
+
[:at,:niederoesterreich] => [:semester,:ostern,:pfingsten,:sommer,:weihnachten],
|
41
|
+
[:at,:oberoesterreich] => [:semester,:ostern,:pfingsten,:sommer,:weihnachten],
|
42
|
+
[:at,:salzburg] => [:semester,:ostern,:pfingsten,:sommer,:weihnachten],
|
43
|
+
[:at,:steiermark] => [:semester,:ostern,:pfingsten,:sommer,:weihnachten],
|
44
|
+
[:at,:tirol] => [:semester,:ostern,:pfingsten,:sommer,:weihnachten],
|
45
|
+
[:at,:vorarlberg] => [:semester,:ostern,:pfingsten,:sommer,:weihnachten],
|
46
|
+
[:at,:wien] => [:semester,:ostern,:pfingsten,:sommer,:weihnachten],
|
47
|
+
}
|
21
48
|
require 'hash'
|
22
49
|
|
50
|
+
# Creates a new Holiday object
|
23
51
|
def initialize(year,country,region,holiday_type)
|
24
52
|
@year = year
|
25
53
|
@country = country
|
@@ -213,10 +241,12 @@ class Holidays
|
|
213
241
|
|
214
242
|
alias :days :result
|
215
243
|
|
244
|
+
# Returns an array of all implemented countries ([:de, :at, ..])
|
216
245
|
def self.countries
|
217
246
|
COUNTRY_CODES
|
218
247
|
end
|
219
248
|
|
249
|
+
# Returns an array of all regions of a country ([:baden_wuerttemberg, ..])
|
220
250
|
def self.regions(country)
|
221
251
|
case country
|
222
252
|
when :de
|
@@ -230,56 +260,44 @@ class Holidays
|
|
230
260
|
end
|
231
261
|
end
|
232
262
|
|
233
|
-
|
263
|
+
# Returns an array of all holiday types of a country and optionally a region
|
264
|
+
# ([:winter, :ostern, ..])
|
265
|
+
def self.holiday_types(country,region=nil)
|
234
266
|
case country
|
235
267
|
when :de
|
236
|
-
|
268
|
+
if region
|
269
|
+
TYPES[[country,region]]
|
270
|
+
else
|
271
|
+
HOLIDAY_CODES_DE
|
272
|
+
end
|
237
273
|
when :at
|
238
|
-
|
274
|
+
if region
|
275
|
+
TYPES[[country,region]]
|
276
|
+
else
|
277
|
+
HOLIDAY_CODES_AT
|
278
|
+
end
|
239
279
|
when :ch
|
280
|
+
#TODO: unterschiedliche in Schweiz?
|
240
281
|
[:sport, :fruehling, :sommer, :herbst, :weihnachten]
|
241
282
|
else
|
242
283
|
raise ArgumentError, "Unknown country #{country}"
|
243
284
|
end
|
244
285
|
end
|
245
286
|
|
246
|
-
#
|
247
|
-
def self.source
|
248
|
-
|
249
|
-
unless ENV['HOLIDAYS_SOURCE']
|
250
|
-
|
251
|
-
else
|
252
|
-
|
253
|
-
|
254
|
-
|
255
|
-
|
256
|
-
|
257
|
-
end
|
287
|
+
# Obsolete - always returns :from_hash
|
288
|
+
def self.source #:nodoc
|
289
|
+
return :from_hash # TODO:
|
290
|
+
# unless ENV['HOLIDAYS_SOURCE']
|
291
|
+
# :internal
|
292
|
+
# else
|
293
|
+
# if File.exist? ENV['HOLIDAYS_SOURCE']
|
294
|
+
# :from_spreadsheet
|
295
|
+
# else
|
296
|
+
# :file_not_found
|
297
|
+
# end
|
298
|
+
# end
|
258
299
|
end
|
259
300
|
|
260
|
-
# Returns the first missing holidays of the defined countries, regions
|
261
|
-
# and holiday types
|
262
|
-
# The result is an array like [2011, :de, :bayern, :sommer]
|
263
|
-
def self.check_next
|
264
|
-
(2011..2099).each do |year|
|
265
|
-
Holidays.countries.each do |country|
|
266
|
-
Holidays.regions(country).each do |region_code|
|
267
|
-
Holidays.holiday_types(country).each do |htype|
|
268
|
-
#print "#{year} #{country} "
|
269
|
-
#print "#{region_code} "
|
270
|
-
#puts "#{htype}"
|
271
|
-
begin
|
272
|
-
result = Holidays.new(year,country,region_code,htype)
|
273
|
-
rescue ArgumentError
|
274
|
-
return [year,country,region_code,htype]
|
275
|
-
end
|
276
|
-
end
|
277
|
-
end
|
278
|
-
end
|
279
|
-
end
|
280
|
-
return []
|
281
|
-
end
|
282
|
-
|
283
301
|
private
|
284
302
|
|
285
303
|
def build_result
|
@@ -291,9 +309,8 @@ class Holidays
|
|
291
309
|
lfd += 1
|
292
310
|
end
|
293
311
|
@extra_days.each do |d|
|
294
|
-
|
312
|
+
result << d
|
295
313
|
end
|
296
|
-
|
297
314
|
result.sort
|
298
315
|
end
|
299
316
|
|
@@ -302,34 +319,3 @@ class Holidays
|
|
302
319
|
end
|
303
320
|
|
304
321
|
end # class Holidays
|
305
|
-
|
306
|
-
if __FILE__ == $0
|
307
|
-
holidays = [
|
308
|
-
[
|
309
|
-
2011,
|
310
|
-
:de,
|
311
|
-
:baden_wuerttemberg,
|
312
|
-
:sommerferien,
|
313
|
-
Date.new(2011,7,28),
|
314
|
-
Date.new(2011,9,10),
|
315
|
-
],
|
316
|
-
[
|
317
|
-
2011,
|
318
|
-
:de,
|
319
|
-
:berlin,
|
320
|
-
:sommerferien,
|
321
|
-
Date.new(2011,7,28),
|
322
|
-
Date.new(2011,9,10),
|
323
|
-
],
|
324
|
-
]
|
325
|
-
File.open('holidays.yml','w') do |f|
|
326
|
-
f.puts YAML.dump(holidays)
|
327
|
-
end
|
328
|
-
File.open('holidays.yml') do |f|
|
329
|
-
@holidays = YAML.load(f)
|
330
|
-
end
|
331
|
-
p @holidays
|
332
|
-
p @holidays.size
|
333
|
-
# f = Holidays.new(2011,:de,:bayern,:western)
|
334
|
-
f = Holidays.new(2030,:de,:bayern,:western)
|
335
|
-
end
|
data/version.txt
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.2.0
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rholidays
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2011-10-
|
12
|
+
date: 2011-10-25 00:00:00.000000000Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: roo
|
16
|
-
requirement: &
|
16
|
+
requirement: &20035068 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: 1.10.0
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *20035068
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: bones
|
27
|
-
requirement: &
|
27
|
+
requirement: &20034780 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,7 +32,7 @@ dependencies:
|
|
32
32
|
version: 3.7.1
|
33
33
|
type: :development
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *20034780
|
36
36
|
description: Rholidays ermittelt Ferientermine (zum Beispiel Sommerferien in Bayern
|
37
37
|
im Jahr 2011)
|
38
38
|
email: thopre@gmail.com
|
@@ -45,7 +45,6 @@ extra_rdoc_files:
|
|
45
45
|
- bin/rholidays
|
46
46
|
files:
|
47
47
|
- History.txt
|
48
|
-
- README.md
|
49
48
|
- README.txt
|
50
49
|
- Rakefile
|
51
50
|
- bin/rholidays
|
@@ -57,9 +56,6 @@ files:
|
|
57
56
|
- nbproject/project.xml
|
58
57
|
- spec/rholidays_spec.rb
|
59
58
|
- spec/spec_helper.rb
|
60
|
-
- test/check_spreadsheet.rb
|
61
|
-
- test/ferien_free.ods
|
62
|
-
- test/ferien_paid - Kopie.ods
|
63
59
|
- test/test_rholidays.rb
|
64
60
|
- version.txt
|
65
61
|
homepage: http://rholidays.rubyforge.net
|
data/README.md
DELETED
@@ -1,64 +0,0 @@
|
|
1
|
-
rholidays
|
2
|
-
===========
|
3
|
-
|
4
|
-
RHolidays ermittelt Ferientermine (z. B. Sommerferien in Bayern im Jahr 2011)
|
5
|
-
|
6
|
-
Features
|
7
|
-
--------
|
8
|
-
|
9
|
-
* Liste der unterstuetzten Laender
|
10
|
-
* Liste der definierten Regionen (Bundeslaender) je Land
|
11
|
-
* Liste der Ferienarten je Land
|
12
|
-
* Ermittelln eines spezifischen Ferientyps (z.B. Sommerferien Bayern in Deutschland fuer 2011)
|
13
|
-
* Momentan sind die Laender Deutschland und Oesterreich implementiert
|
14
|
-
|
15
|
-
Examples
|
16
|
-
--------
|
17
|
-
|
18
|
-
require 'rholidays'
|
19
|
-
# implementierte Laender
|
20
|
-
laender = Holidays.countries # [:de,:at]
|
21
|
-
|
22
|
-
# ...
|
23
|
-
|
24
|
-
Requirements
|
25
|
-
------------
|
26
|
-
|
27
|
-
* no specific requirements, all dependent gems will be installed automatically
|
28
|
-
|
29
|
-
Install
|
30
|
-
-------
|
31
|
-
|
32
|
-
* [sudo] gem install rholidays
|
33
|
-
|
34
|
-
Author
|
35
|
-
------
|
36
|
-
|
37
|
-
Thomas Preymesser (thopre@gmail.com)
|
38
|
-
|
39
|
-
|
40
|
-
License
|
41
|
-
-------
|
42
|
-
|
43
|
-
(The MIT License)
|
44
|
-
|
45
|
-
Copyright (c) 2011 FIXME (author's name)
|
46
|
-
|
47
|
-
Permission is hereby granted, free of charge, to any person obtaining
|
48
|
-
a copy of this software and associated documentation files (the
|
49
|
-
'Software'), to deal in the Software without restriction, including
|
50
|
-
without limitation the rights to use, copy, modify, merge, publish,
|
51
|
-
distribute, sublicense, and/or sell copies of the Software, and to
|
52
|
-
permit persons to whom the Software is furnished to do so, subject to
|
53
|
-
the following conditions:
|
54
|
-
|
55
|
-
The above copyright notice and this permission notice shall be
|
56
|
-
included in all copies or substantial portions of the Software.
|
57
|
-
|
58
|
-
THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
|
59
|
-
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
60
|
-
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
61
|
-
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
62
|
-
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
63
|
-
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
64
|
-
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/test/check_spreadsheet.rb
DELETED
@@ -1,117 +0,0 @@
|
|
1
|
-
require 'pp'
|
2
|
-
require 'rubygems'
|
3
|
-
require 'roo'
|
4
|
-
|
5
|
-
ENDBETRAG = 2.00 # endgueltiger Beitrag fuer komplette Feriendaten pro Jahr
|
6
|
-
EUROKURS = 10.0
|
7
|
-
JAHRE = 3 # Anzahl Jahre im voraus die als Ziel angesehen werden
|
8
|
-
LAENDER = [:de,:at]
|
9
|
-
REGIONEN_DE = [:baden_wuerttemberg, :bayern, :berlin, :brandenburg, :bremen,
|
10
|
-
:hamburg, :hessen, :mecklenburg_vorpommern, :niedersachsen,
|
11
|
-
:nordrhein_westfalen, :rheinland_pfalz, :saarland, :sachsen,
|
12
|
-
:sachsen_anhalt, :schleswig_holstein, :thueringen]
|
13
|
-
REGIONEN_AT = [:burgenland, :kaernten, :niederoesterreich, :oberoesterreich,
|
14
|
-
:salzburg, :steiermark, :tirol, :vorarlberg, :wien]
|
15
|
-
FERIENTYP_DE = [:herbst, :weihnachten, :winter, :ostern, :pfingsten, :sommer]
|
16
|
-
FERIENTYP_AT = [:weihnachten, :semester, :ostern, :pfingsten, :sommer]
|
17
|
-
SPREADSHEET = 'ferien_paid.ods'
|
18
|
-
|
19
|
-
#oo = Openoffice.new(ENV['HOLIDAYS_SOURCE'])
|
20
|
-
oo = Openoffice.new(SPREADSHEET)
|
21
|
-
oo.default_sheet = oo.sheets.first
|
22
|
-
found = false
|
23
|
-
max_last = Date.today
|
24
|
-
zuletzt = Hash.new
|
25
|
-
oo.cell(1,1).to_i.upto(oo.last_row) do |row|
|
26
|
-
jahr = oo.cell(row,1)
|
27
|
-
land = oo.cell(row,2).to_sym
|
28
|
-
raise "Land nicht korrekt" unless LAENDER.include? land
|
29
|
-
lregion = oo.cell(row,3).to_sym
|
30
|
-
# p land, lregion
|
31
|
-
unless (land == :de and REGIONEN_DE.include?(lregion)) or
|
32
|
-
(land == :at and REGIONEN_AT.include?(lregion))
|
33
|
-
raise "Region nicht korrekt (#{lregion}) in Zeile #{row}"
|
34
|
-
end
|
35
|
-
ferientyp = oo.cell(row,4).to_sym
|
36
|
-
if (land == :de and FERIENTYP_DE.include?(ferientyp)) or
|
37
|
-
(land == :at and FERIENTYP_AT.include?(ferientyp))
|
38
|
-
# OK
|
39
|
-
else
|
40
|
-
raise "Ferientyp nicht korrekt (#{ferientyp}) in Zeile #{row}"
|
41
|
-
end
|
42
|
-
first = oo.cell(row,5)
|
43
|
-
if first.year != jahr
|
44
|
-
raise "Jahr in Von-Datum stimmt nicht mit Jahr ueberein in Zeile #{row}"
|
45
|
-
end
|
46
|
-
last = oo.cell(row,6)
|
47
|
-
if last.year != jahr
|
48
|
-
if ferientyp == :weihnachten
|
49
|
-
if last.year == jahr + 1
|
50
|
-
# OK
|
51
|
-
else
|
52
|
-
raise "Jahr in Bis-Datum stimmt nicht mit Jahr ueberein in Zeile #{row}"
|
53
|
-
end
|
54
|
-
else
|
55
|
-
raise "Jahr in Bis-Datum stimmt nicht mit Jahr ueberein in Zeile #{row}"
|
56
|
-
end
|
57
|
-
end
|
58
|
-
raise "Zeile #{row}: Startdatum <= Endedatum nicht erfuellt" unless first <= last
|
59
|
-
if last > max_last
|
60
|
-
max_last = last
|
61
|
-
end
|
62
|
-
# zuletzt gesehene Termine fuer dieses Land
|
63
|
-
unless zuletzt.has_key? land
|
64
|
-
# Land noch nicht gesehen
|
65
|
-
zuletzt[land] = {:ferientyp => ferientyp, :last => last}
|
66
|
-
else
|
67
|
-
# Land schon vorhanden
|
68
|
-
if last > zuletzt[land][:last]
|
69
|
-
zuletzt[land] = {:ferientyp => ferientyp, :last => last}
|
70
|
-
end
|
71
|
-
end
|
72
|
-
end
|
73
|
-
|
74
|
-
def oeffentliche_version
|
75
|
-
puts "berechne oeffentliche Version"
|
76
|
-
heute = Date.today
|
77
|
-
puts "heute ist #{heute}"
|
78
|
-
termin = Date.today >> 6
|
79
|
-
puts "Ferien bis zum #{termin}"
|
80
|
-
result = Hash.new
|
81
|
-
oo = Openoffice.new(SPREADSHEET)
|
82
|
-
oo.default_sheet = oo.sheets.first
|
83
|
-
# alle Ferien sammeln, deren Anfangstermin kleiner als 'termin' ist
|
84
|
-
oo.cell(1,1).to_i.upto(oo.last_row) do |row|
|
85
|
-
jahr = oo.cell(row,1).to_i
|
86
|
-
land = oo.cell(row,2).to_sym
|
87
|
-
lregion = oo.cell(row,3).to_sym
|
88
|
-
typ = oo.cell(row,4)
|
89
|
-
von = oo.cell(row,5)
|
90
|
-
if von <= termin
|
91
|
-
# puts "#{jahr} #{land} #{lregion} #{typ} #{von}"
|
92
|
-
result[{:jahr => jahr,
|
93
|
-
:land => land,
|
94
|
-
:typ => typ}] = true
|
95
|
-
end
|
96
|
-
|
97
|
-
end
|
98
|
-
pp result
|
99
|
-
end
|
100
|
-
|
101
|
-
puts "letzter ermittelter Ferientag: #{max_last}"
|
102
|
-
gesamt = Date.today + JAHRE*365
|
103
|
-
gesamt_tage = JAHRE*365
|
104
|
-
anteil_tage = max_last - Date.today
|
105
|
-
anteil = anteil_tage.to_f / gesamt_tage
|
106
|
-
puts "Anteil: " + sprintf("%3d %%",anteil*100)
|
107
|
-
puts "aktueller Beitrag: #{sprintf("%.2f",ENDBETRAG*anteil)} BTC (ca. #{ENDBETRAG*anteil*EUROKURS} EUR)"
|
108
|
-
puts "zuletzt erfasst:"
|
109
|
-
zuletzt.each do |key,elem|
|
110
|
-
print "#{key}\t"
|
111
|
-
print "#{elem[:ferientyp]}\t"
|
112
|
-
print "#{elem[:last]}"
|
113
|
-
puts
|
114
|
-
end
|
115
|
-
|
116
|
-
oeffentliche_version
|
117
|
-
|
data/test/ferien_free.ods
DELETED
Binary file
|
Binary file
|