summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Doc/library/calendar.rst8
-rw-r--r--Lib/calendar.py7
-rw-r--r--Misc/NEWS.d/next/Library/2023-11-18-16-30-21.gh-issue-112240.YXS0tj.rst2
3 files changed, 16 insertions, 1 deletions
diff --git a/Doc/library/calendar.rst b/Doc/library/calendar.rst
index 6586f53..c4dcf56 100644
--- a/Doc/library/calendar.rst
+++ b/Doc/library/calendar.rst
@@ -586,10 +586,16 @@ The following options are accepted:
or as an HTML document.
+.. option:: --first-weekday WEEKDAY, -f WEEKDAY
+
+ The weekday to start each week.
+ Must be a number between 0 (Monday) and 6 (Sunday).
+ Defaults to 0.
+
+
.. option:: year
The year to print the calendar for.
- Must be a number between 1 and 9999.
Defaults to the current year.
diff --git a/Lib/calendar.py b/Lib/calendar.py
index 3c79540..833ce33 100644
--- a/Lib/calendar.py
+++ b/Lib/calendar.py
@@ -735,6 +735,11 @@ def main(args=None):
help="output type (text or html)"
)
parser.add_argument(
+ "-f", "--first-weekday",
+ type=int, default=0,
+ help="weekday (0 is Monday, 6 is Sunday) to start each week (default 0)"
+ )
+ parser.add_argument(
"year",
nargs='?', type=int,
help="year number"
@@ -761,6 +766,7 @@ def main(args=None):
cal = LocaleHTMLCalendar(locale=locale)
else:
cal = HTMLCalendar()
+ cal.setfirstweekday(options.first_weekday)
encoding = options.encoding
if encoding is None:
encoding = sys.getdefaultencoding()
@@ -775,6 +781,7 @@ def main(args=None):
cal = LocaleTextCalendar(locale=locale)
else:
cal = TextCalendar()
+ cal.setfirstweekday(options.first_weekday)
optdict = dict(w=options.width, l=options.lines)
if options.month is None:
optdict["c"] = options.spacing
diff --git a/Misc/NEWS.d/next/Library/2023-11-18-16-30-21.gh-issue-112240.YXS0tj.rst b/Misc/NEWS.d/next/Library/2023-11-18-16-30-21.gh-issue-112240.YXS0tj.rst
new file mode 100644
index 0000000..686f031
--- /dev/null
+++ b/Misc/NEWS.d/next/Library/2023-11-18-16-30-21.gh-issue-112240.YXS0tj.rst
@@ -0,0 +1,2 @@
+Add option to calendar module CLI to specify the weekday to start each week.
+Patch by Steven Ward.