Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
W
week_cal
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package registry
Container registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
GitLab community forum
Contribute to GitLab
Provide feedback
Terms and privacy
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Pavel Kácha
week_cal
Commits
4566ac18
Commit
4566ac18
authored
Feb 19, 2017
by
ph
Browse files
Options
Downloads
Patches
Plain Diff
Week calendar csv generator
parents
No related branches found
No related tags found
No related merge requests found
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
cal.py
+90
-0
90 additions, 0 deletions
cal.py
holidays.csv
+14
-0
14 additions, 0 deletions
holidays.csv
moon.csv
+49
-0
49 additions, 0 deletions
moon.csv
with
153 additions
and
0 deletions
cal.py
0 → 100755
+
90
−
0
View file @
4566ac18
#!/usr/bin/python
# -*- coding: utf-8 -*-
import
calendar
import
datetime
from
datetime
import
date
,
timedelta
,
datetime
,
time
import
dateutil.parser
year
=
2017
first_day
=
date
(
year
,
1
,
1
)
last_day
=
date
(
year
,
12
,
31
)
def
get_moon
(
f
):
# https://www.calendar-12.com/moon_phases/2017
# writer->calc->cleanup->export csv ";"
with
open
(
f
)
as
csv
:
for
line
in
csv
:
phase_str
,
date_str
,
time_str
=
line
.
split
(
"
;
"
)
date_str
=
date_str
.
split
(
"
,
"
,
1
)[
0
]
date
=
dateutil
.
parser
.
parse
(
date_str
)
hour_str
,
min_str
=
time_str
.
split
(
"
:
"
)
hour
,
minute
=
int
(
hour_str
),
int
(
min_str
)
moon_time
=
time
(
hour
,
minute
)
timestamp
=
datetime
.
combine
(
date
,
moon_time
)
phase
=
{
"
e
"
:
"
☻
"
,
"
i
"
:
"
☽
"
,
"
u
"
:
"
☺
"
,
"
a
"
:
"
☾
"
}[
phase_str
[
1
]]
yield
timestamp
.
date
(),
(
phase
,
timestamp
)
def
get_holidays
(
f
):
# http://svatky.centrum.cz/svatky/statni-svatky/2017/
# writer->calc->cleanup->export csv ";"
with
open
(
f
)
as
csv
:
for
line
in
csv
:
date_str
,
holiday_str
=
line
.
split
(
"
;
"
)
date
=
dateutil
.
parser
.
parse
(
date_str
,
dayfirst
=
True
)
holiday
=
holiday_str
.
strip
()
yield
date
.
date
(),
holiday
def
get_happydays
(
f
):
with
open
(
f
)
as
csv
:
for
line
in
csv
:
if
line
.
startswith
(
"
exec
"
):
continue
date_str
,
holiday_str
,
cat_str
,
name_str
=
line
.
split
(
"
:
"
)
date_str
,
holiday_str
,
cat_str
,
name_str
=
date_str
.
strip
(),
holiday_str
.
strip
(),
cat_str
.
strip
(),
name_str
.
strip
()
if
not
"
VIP
"
in
cat_str
:
continue
day
,
month
,
year
=
date_str
.
split
(
"
.
"
)
if
not
(
year
):
age_str
=
""
year
=
datetime
.
now
().
year
else
:
year
=
int
(
year
)
age
=
datetime
.
now
().
year
-
year
age_str
=
"
(%d)
"
%
age
dt
=
date
(
year
,
int
(
month
),
int
(
day
))
yield
dt
,
"
"
.
join
([
name_str
,
age_str
])
def
gen
(
year
,
moon
,
holidays
,
happydays
):
first_day
=
date
(
year
,
1
,
1
)
last_day
=
date
(
year
,
12
,
31
)
first_week_day
=
first_day
-
timedelta
(
days
=
first_day
.
weekday
())
last_week_day
=
last_day
+
timedelta
(
days
=
6
-
first_day
.
weekday
())
calendar_range
=
last_week_day
-
first_week_day
week_count
=
(
calendar_range
.
days
+
1
)
/
7
for
week
in
range
(
week_count
):
month_name
=
(
first_week_day
+
timedelta
(
days
=
7
*
week
)).
strftime
(
"
%B
"
)
wl
=
[
str
(
week
+
1
),
month_name
]
# week num, month name
for
day_of_week
in
range
(
7
):
cur
=
first_week_day
+
timedelta
(
days
=
7
*
week
+
day_of_week
)
wl
.
append
(
cur
.
strftime
(
"
%A
"
))
# day name
wl
.
append
(
str
(
cur
.
timetuple
().
tm_yday
))
# day num in year
wl
.
append
(
str
(
cur
.
day
))
# day in month
moon_str
=
"
%s %s
"
%
(
moon
[
cur
][
0
],
moon
[
cur
][
1
].
strftime
(
"
%H:%M
"
))
if
cur
in
moon
else
""
wl
.
append
(
moon_str
)
# moon phase
holiday
=
holidays
[
cur
]
if
cur
in
holidays
else
""
wl
.
append
(
holiday
)
# holiday
happyday
=
happydays
[
cur
]
if
cur
in
happydays
else
""
wl
.
append
(
happyday
)
# happyday
print
"
;
"
.
join
(
wl
)
def
main
():
moon
=
dict
(
get_moon
(
"
moon.csv
"
))
holidays
=
dict
(
get_holidays
(
"
holidays.csv
"
))
happydays
=
dict
(
get_happydays
(
"
../../etc/happydays.txt
"
))
gen
(
2017
,
moon
,
holidays
,
happydays
)
main
()
This diff is collapsed.
Click to expand it.
holidays.csv
0 → 100644
+
14
−
0
View file @
4566ac18
1. 1.;Den obnovy samostatného českého státu
1. 1.;Nový rok
17. 4.;Velikonoční pondělí
14. 4.;Velký pátek
1. 5.;Svátek práce
8. 5.;Den vítězství
5. 7.;Den slovanských věrozvěstů Cyrila a Metoděje
6. 7.;Den upálení mistra Jana Husa
28. 9.;Den české státnosti
28. 10.;Den vzniku samostatného československého státu
17. 11.;Den boje za svobodu a demokracii
24. 12.;Štědrý den
25. 12.;1. svátek vánoční
26. 12.;2. svátek vánoční
This diff is collapsed.
Click to expand it.
moon.csv
0 → 100644
+
49
−
0
View file @
4566ac18
First Quarter ;January 5, Th.;20:47
Full Moon ;January 12, Th.;12:35
Last Quarter ;January 19, Th.;23:14
New Moon ;January 28, Sa.;01:08
First Quarter ;February 4, Sa.;05:19
Full Moon ;February 11, Sa.;01:33
Last Quarter ;February 18, Sa.;20:35
New Moon ;February 26, Su.;16:00
First Quarter ;March 5, Su.;12:33
Full Moon ;March 12, Su.;15:54
Last Quarter ;March 20, Mo.;17:01
New Moon ;March 28, Tu.;04:59
First Quarter ;April 3, Mo.;20:40
Full Moon ;April 11, Tu.;08:09
Last Quarter ;April 19, We.;12:00
New Moon ;April 26, We.;14:18
First Quarter ;May 3, We.;04:48
Full Moon ;May 10, We.;23:43
Last Quarter ;May 19, Fr.;02:35
New Moon ;May 25, Th.;21:46
First Quarter ;June 1, Th.;14:43
Full Moon ;June 9, Fr.;15:11
Last Quarter ;June 17, Sa.;13:35
New Moon ;June 24, Sa.;04:32
First Quarter ;July 1, Sa.;02:51
Full Moon ;July 9, Su.;06:08
Last Quarter ;July 16, Su.;21:27
New Moon ;July 23, Su.;11:47
First Quarter ;July 30, Su.;17:23
Full Moon ;August 7, Mo.;20:12
Last Quarter ;August 15, Tu.;03:16
New Moon ;August 21, Mo.;20:31
First Quarter ;August 29, Tu.;10:14
Full Moon ;September 6, We.;09:04
Last Quarter ;September 13, We.;08:26
New Moon ;September 20, We.;07:30
First Quarter ;September 28, Th.;04:55
Full Moon ;October 5, Th.;20:41
Last Quarter ;October 12, Th.;14:27
New Moon ;October 19, Th.;21:12
First Quarter ;October 28, Sa.;00:23
Full Moon ;November 4, Sa.;06:24
Last Quarter ;November 10, Fr.;21:38
New Moon ;November 18, Sa.;12:42
First Quarter ;November 26, Su.;18:03
Full Moon ;December 3, Su.;16:48
Last Quarter ;December 10, Su.;08:53
New Moon ;December 18, Mo.;07:31
First Quarter ;December 26, Tu.;10:20
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
sign in
to comment