Skip to main content

Jalali (Shamsi) calendar in your terminal, with holidays

Project description

#+TITLE: jalali-calendar-cli

Jalali (Shamsi) calendar in your terminal, with holidays

* Install
#+begin_example bash
pip install -U jalali-calendar-cli
#+end_example

This requires Python ≥3.10.

* Usage
# #+ATTR_HTML: :width 884
# [[file:readme.org_imgs/20230524_003016_h5V1Xf.png]]
#+ATTR_HTML: :width 914
[[file:readme.org_imgs/20230606_125421_Bh79HZ.png]]

#+ATTR_HTML: :width 900
[[file:readme.org_imgs/20230606_125356_jLt2Jh.png]]


#+begin_example bash
usage: jalali-calendar [-h] [--color {auto,always,never}]
[--true-color | --no-true-color]
[--footnotes | --no-footnotes]
[--indentation INDENTATION]
[--holidays-json-path HOLIDAYS_JSON_PATH]
[--color-preset {light,dark}]
[--weekend-true-color WEEKEND_TRUE_COLOR]
[--holiday-true-color HOLIDAY_TRUE_COLOR]
[--header-true-color HEADER_TRUE_COLOR]
[--today-true-color TODAY_TRUE_COLOR]
[--weekend-color WEEKEND_COLOR]
[--holiday-color HOLIDAY_COLOR]
[--header-color HEADER_COLOR]
[--today-color TODAY_COLOR]
[month] [year]

positional arguments:
month month in Jalali calendar (default: current month)
year year in Jalali calendar (default: current year)

options:
-h, --help show this help message and exit
--color {auto,always,never}
colorize the output
--true-color, --no-true-color
enable true color support for output (default: False)
--footnotes, --no-footnotes
show footnotes in the output (default: True)
--indentation INDENTATION
number of spaces for indentation (default: 5)
--holidays-json-path HOLIDAYS_JSON_PATH
path to JSON file containing holiday data
--color-preset {light,dark}
color preset for the calendar output (default: light)

24-bit true color options:
--weekend-true-color WEEKEND_TRUE_COLOR
RGB values for weekend color in 24-bit true color
--holiday-true-color HOLIDAY_TRUE_COLOR
RGB values for holiday color in 24-bit true color
--header-true-color HEADER_TRUE_COLOR
RGB values for header color in 24-bit true color
--today-true-color TODAY_TRUE_COLOR
RGB values for the current day's color

colorama 256 color options:
--weekend-color WEEKEND_COLOR
colorama color name for weekend color
--holiday-color HOLIDAY_COLOR
colorama color name for holiday color
--header-color HEADER_COLOR
colorama color name for header color
--today-color TODAY_COLOR
colorama color name for the current day
#+end_example

** Examples
#+begin_example bash
jcal 12
#+end_example

#+begin_example
1402 Esfand
Sat Sun Mon Tue Wed Thu Fri
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

Holidays:
6: Birthday of Imam Mahdi
29: Nationalization of the Oil Industry
#+end_example

#+begin_example bash
jcal 7 1402
#+end_example

#+begin_example
1402 Mehr
Sat Sun Mon Tue Wed Thu Fri
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

Holidays:
2: Martyrdom of Imam Hassan Askari and Start of Imamate of Imam Mahdi
11: Birthday of Prophet Muhammad and Imam Sadiq
#+end_example

#+ATTR_HTML: :width 968
[[file:readme.org_imgs/20230606_125617_sazNzJ.png]]

#+ATTR_HTML: :width 968
[[file:readme.org_imgs/20230606_103928_zRAerD.png]]

*** Shell Aliases in Bash
You can add aliases to =~/.bashrc= and =~/.bash_profile= to persist your settings:

#+begin_example bash
alias jcal='command jcal --color-preset dark'
#+end_example

Aliases work the same way in Zsh, you just need to add them to =~/.zshenv=.

*** Today
The current day is highlighted:
#+ATTR_HTML: :width 874
[[file:readme.org_imgs/20230630_060229_Temg6y.png]]

*** Seeing All Months Together
There is a Perl script included in this repository that prints all months together. This script is a WIP.

#+begin_example zsh
perl ./jcal_all.pl 1402 --outer-indent 2 --horizontal-indent 1
#+end_example

#+begin_example
1402 Farvardin 1402 Ordibehesht 1402 Khordad
Sat Sun Mon Tue Wed Thu Fri Sat Sun Mon Tue Wed Thu Fri Sat Sun Mon Tue Wed Thu Fri
1 2 3 4 1 1 2 3 4 5
5 6 7 8 9 10 11 2 3 4 5 6 7 8 6 7 8 9 10 11 12
12 13 14 15 16 17 18 9 10 11 12 13 14 15 13 14 15 16 17 18 19
19 20 21 22 23 24 25 16 17 18 19 20 21 22 20 21 22 23 24 25 26
26 27 28 29 30 31 23 24 25 26 27 28 29 27 28 29 30 31
30 31

1402 Tir 1402 Mordad 1402 Shahrivar
Sat Sun Mon Tue Wed Thu Fri Sat Sun Mon Tue Wed Thu Fri Sat Sun Mon Tue Wed Thu Fri
1 2 1 2 3 4 5 6 1 2 3
3 4 5 6 7 8 9 7 8 9 10 11 12 13 4 5 6 7 8 9 10
10 11 12 13 14 15 16 14 15 16 17 18 19 20 11 12 13 14 15 16 17
17 18 19 20 21 22 23 21 22 23 24 25 26 27 18 19 20 21 22 23 24
24 25 26 27 28 29 30 28 29 30 31 25 26 27 28 29 30 31
31

1402 Mehr 1402 Aban 1402 Azar
Sat Sun Mon Tue Wed Thu Fri Sat Sun Mon Tue Wed Thu Fri Sat Sun Mon Tue Wed Thu Fri
1 2 3 4 5 6 7 1 2 3 4 5 1 2 3
8 9 10 11 12 13 14 6 7 8 9 10 11 12 4 5 6 7 8 9 10
15 16 17 18 19 20 21 13 14 15 16 17 18 19 11 12 13 14 15 16 17
22 23 24 25 26 27 28 20 21 22 23 24 25 26 18 19 20 21 22 23 24
29 30 27 28 29 30 25 26 27 28 29 30

1402 Dey 1402 Bahman 1402 Esfand
Sat Sun Mon Tue Wed Thu Fri Sat Sun Mon Tue Wed Thu Fri Sat Sun Mon Tue Wed Thu Fri
1 1 2 3 4 5 6 1 2 3 4
2 3 4 5 6 7 8 7 8 9 10 11 12 13 5 6 7 8 9 10 11
9 10 11 12 13 14 15 14 15 16 17 18 19 20 12 13 14 15 16 17 18
16 17 18 19 20 21 22 21 22 23 24 25 26 27 19 20 21 22 23 24 25
23 24 25 26 27 28 29 28 29 30 26 27 28 29
30
#+end_example

** =colorama= Colors
These colors are defined by your terminal theme. Use true (24-bit) colors if you want to specify colors in RGB.

#+begin_example
BLACK
BLUE
CYAN
GREEN
LIGHTBLACK_EX
LIGHTBLUE_EX
LIGHTCYAN_EX
LIGHTGREEN_EX
LIGHTMAGENTA_EX
LIGHTRED_EX
LIGHTWHITE_EX
LIGHTYELLOW_EX
MAGENTA
RED
RESET
WHITE
YELLOW
#+end_example

* Holiday Data
The default data dictionary is [[https://github.com/NightMachinery/jalali-calendar-cli/blob/master/jalali_calendar_cli/holidays.json][here]]. I plan to keep the data up-to-date for the upcoming years, but you can always supply your own.

The holiday data of previous years (≤1401) has not been added.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

jalali_calendar_cli-0.1.7.tar.gz (8.8 kB view hashes)

Uploaded Source

Built Distribution

jalali_calendar_cli-0.1.7-py3-none-any.whl (8.9 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page