diff --git a/ObsoleteFiles.inc b/ObsoleteFiles.inc index edf5bb2ab1ef..907dc5d5cbf8 100644 --- a/ObsoleteFiles.inc +++ b/ObsoleteFiles.inc @@ -36,11 +36,6 @@ # xargs -n1 | sort | uniq -d; # done -# 20200302: calendar(1) removed -OLD_DIRS+=usr/share/calendar -OLD_FILES+=usr/bin/calendar -OLD_FILES+=usr/share/man/man1/calendar.1.gz - # 20200301: bktr removed OLD_DIRS+=usr/include/dev/bktr OLD_FILES+=usr/include/dev/bktr/ioctl_bktr.h diff --git a/share/man/man5/periodic.conf.5 b/share/man/man5/periodic.conf.5 index 6ce19438f92b..962315ef5b49 100644 --- a/share/man/man5/periodic.conf.5 +++ b/share/man/man5/periodic.conf.5 @@ -273,6 +273,13 @@ Set to if you want the .Pa /etc/mail/aliases file backed up and modifications to be displayed in your daily output. +.It Va daily_calendar_enable +.Pq Vt bool +Set to +.Dq Li YES +if you want to run +.Nm calendar Fl a +daily. .It Va daily_accounting_enable .Pq Vt bool Set to @@ -963,6 +970,7 @@ is shared or distributed. .El .Sh SEE ALSO .Xr apropos 1 , +.Xr calendar 1 , .Xr df 1 , .Xr diff 1 , .Xr gzip 1 , diff --git a/share/man/man5/src.conf.5 b/share/man/man5/src.conf.5 index 0cdd3747474d..f4206b5427b6 100644 --- a/share/man/man5/src.conf.5 +++ b/share/man/man5/src.conf.5 @@ -271,6 +271,9 @@ is set explicitly) .El .It Va WITHOUT_BZIP2_SUPPORT Set to build some programs without optional bzip2 support. +.It Va WITHOUT_CALENDAR +Set to not build +.Xr calendar 1 . .It Va WITHOUT_CAPSICUM Set to not build Capsicum support into system programs. When set, it enforces these options: diff --git a/share/man/man7/hier.7 b/share/man/man7/hier.7 index 29a3ebb018c4..4b297f5eb77a 100644 --- a/share/man/man7/hier.7 +++ b/share/man/man7/hier.7 @@ -442,6 +442,10 @@ system daemons & system utilities (executed by users) architecture-independent files .Pp .Bl -tag -width Fl -compact +.It Pa calendar/ +a variety of pre-fab calendar files; +see +.Xr calendar 1 .It Pa dict/ word lists; see diff --git a/tools/build/options/WITHOUT_CALENDAR b/tools/build/options/WITHOUT_CALENDAR new file mode 100644 index 000000000000..6944e3fb6705 --- /dev/null +++ b/tools/build/options/WITHOUT_CALENDAR @@ -0,0 +1,3 @@ +.\" $FreeBSD$ +Set to not build +.Xr calendar 1 . diff --git a/tools/tools/nanobsd/dhcpd/common b/tools/tools/nanobsd/dhcpd/common index 2d4f15bfa293..0c801318609e 100644 --- a/tools/tools/nanobsd/dhcpd/common +++ b/tools/tools/nanobsd/dhcpd/common @@ -104,6 +104,7 @@ WITHOUT_ACPI=true WITHOUT_ATM=true WITHOUT_AUDIT=true WITHOUT_BLUETOOTH=true +WITHOUT_CALENDAR=true WITHOUT_DICT=true WITHOUT_EXAMPLES=true WITHOUT_GAMES=true diff --git a/tools/tools/nanobsd/embedded/common b/tools/tools/nanobsd/embedded/common index 470fb4341c3c..013495997554 100644 --- a/tools/tools/nanobsd/embedded/common +++ b/tools/tools/nanobsd/embedded/common @@ -135,6 +135,7 @@ WITHOUT_ACPI=true WITHOUT_ATM=true WITHOUT_AUDIT=true WITHOUT_BLUETOOTH=true +WITHOUT_CALENDAR=true WITHOUT_DICT=true WITHOUT_EXAMPLES=true WITHOUT_GAMES=true diff --git a/usr.bin/Makefile b/usr.bin/Makefile index 93712eed4b18..cb166e99457e 100644 --- a/usr.bin/Makefile +++ b/usr.bin/Makefile @@ -195,6 +195,7 @@ SUBDIR.${MK_AT}+= at SUBDIR.${MK_ATM}+= atm SUBDIR.${MK_BLUETOOTH}+= bluetooth SUBDIR.${MK_BSD_CPIO}+= cpio +SUBDIR.${MK_CALENDAR}+= calendar SUBDIR.${MK_CLANG}+= clang SUBDIR.${MK_DIALOG}+= dpv SUBDIR.${MK_EE}+= ee diff --git a/usr.bin/calendar/Makefile b/usr.bin/calendar/Makefile new file mode 100644 index 000000000000..56665231db4c --- /dev/null +++ b/usr.bin/calendar/Makefile @@ -0,0 +1,117 @@ +# @(#)Makefile 8.1 (Berkeley) 6/6/93 +# $FreeBSD$ + +.include + +PROG= calendar +SRCS= calendar.c locale.c events.c dates.c parsedata.c io.c day.c \ + ostern.c paskha.c pom.c sunpos.c +LIBADD= m util +INTER= de_AT.ISO_8859-15 de_DE.ISO8859-1 fr_FR.ISO8859-1 \ + hr_HR.ISO8859-2 hu_HU.ISO8859-2 pt_BR.ISO8859-1 \ + pt_BR.UTF-8 ru_RU.KOI8-R ru_RU.UTF-8 uk_UA.KOI8-U +DE_LINKS= de_DE.ISO8859-15 +FR_LINKS= fr_FR.ISO8859-15 + +.if ${MK_ICONV} == "yes" +CFLAGS+= -DWITH_ICONV +.endif + +FILESGROUPS+= CALS +CALS= calendars/calendar.all \ + calendars/calendar.australia \ + calendars/calendar.birthday \ + calendars/calendar.brazilian \ + calendars/calendar.christian \ + calendars/calendar.computer \ + calendars/calendar.croatian \ + calendars/calendar.dutch \ + calendars/calendar.freebsd \ + calendars/calendar.french \ + calendars/calendar.german \ + calendars/calendar.history \ + calendars/calendar.holiday \ + calendars/calendar.hungarian \ + calendars/calendar.judaic \ + calendars/calendar.lotr \ + calendars/calendar.music \ + calendars/calendar.newzealand \ + calendars/calendar.russian \ + calendars/calendar.southafrica \ + calendars/calendar.ukrainian \ + calendars/calendar.usholiday \ + calendars/calendar.world +CALSDIR= ${SHAREDIR}/calendar + +CAL_de_AT.ISO_8859-15= calendar.feiertag + +CAL_de_DE.ISO8859-1= calendar.all \ + calendar.feiertag \ + calendar.geschichte \ + calendar.kirche \ + calendar.literatur \ + calendar.musik \ + calendar.wissenschaft + +CAL_fr_FR.ISO8859-1= calendar.all \ + calendar.fetes \ + calendar.french \ + calendar.jferies \ + calendar.proverbes + +CAL_hr_HR.ISO8859-2= calendar.all \ + calendar.praznici + +CAL_hu_HU.ISO8859-2= calendar.all \ + calendar.nevnapok \ + calendar.unnepek + +CAL_pt_BR.ISO8859-1= calendar.all \ + calendar.commemorative \ + calendar.holidays \ + calendar.mcommemorative + +CAL_pt_BR.UTF-8= calendar.all \ + calendar.commemorative \ + calendar.holidays \ + calendar.mcommemorative + +CAL_ru_RU.KOI8-R= calendar.all \ + calendar.common \ + calendar.holiday \ + calendar.military \ + calendar.orthodox \ + calendar.pagan + +CAL_ru_RU.UTF-8= calendar.all \ + calendar.common \ + calendar.holiday \ + calendar.military \ + calendar.orthodox \ + calendar.pagan + +CAL_uk_UA.KOI8-U= calendar.all \ + calendar.holiday \ + calendar.misc \ + calendar.orthodox + +.for lang in ${INTER} +FILESGROUPS+= CALS_${lang} +CALS_${lang}DIR= ${SHAREDIR}/calendar/${lang} +.for file in ${CAL_${lang}} +CALS_${lang}+= ${file:S@^@calendars/${lang}/@} +.endfor +.endfor + + +.for link in ${DE_LINKS} +SYMLINKS+= de_DE.ISO8859-1 ${SHAREDIR}/calendar/${link} +.endfor +.for link in ${FR_LINKS} +SYMLINKS+= fr_FR.ISO8859-1 ${SHAREDIR}/calendar/${link} +.endfor + +HAS_TESTS= +SUBDIR.${MK_TESTS}+= tests + +.include diff --git a/usr.bin/calendar/Makefile.depend b/usr.bin/calendar/Makefile.depend new file mode 100644 index 000000000000..905e67cc66c9 --- /dev/null +++ b/usr.bin/calendar/Makefile.depend @@ -0,0 +1,18 @@ +# $FreeBSD$ +# Autogenerated - do NOT edit! + +DIRDEPS = \ + gnu/lib/csu \ + include \ + include/xlocale \ + lib/${CSU_DIR} \ + lib/libc \ + lib/libcompiler_rt \ + lib/msun \ + + +.include + +.if ${DEP_RELDIR} == ${_DEP_RELDIR} +# local dependencies - needed for -jN in clean tree +.endif diff --git a/usr.bin/calendar/calendar.1 b/usr.bin/calendar/calendar.1 new file mode 100644 index 000000000000..f90903bc936f --- /dev/null +++ b/usr.bin/calendar/calendar.1 @@ -0,0 +1,333 @@ +.\" Copyright (c) 1989, 1990, 1993 +.\" The Regents of the University of California. All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" 3. Neither the name of the University nor the names of its contributors +.\" may be used to endorse or promote products derived from this software +.\" without specific prior written permission. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\" @(#)calendar.1 8.1 (Berkeley) 6/29/93 +.\" $FreeBSD$ +.\" +.Dd July 24, 2016 +.Dt CALENDAR 1 +.Os +.Sh NAME +.Nm calendar +.Nd reminder service +.Sh SYNOPSIS +.Nm +.Op Fl A Ar num +.Op Fl a +.Op Fl B Ar num +.Op Fl D Ar moon|sun +.Op Fl d +.Op Fl F Ar friday +.Op Fl f Ar calendarfile +.Op Fl l Ar longitude +.Oo +.Bk -words +.Fl t Ar dd Ns +.Sm off +.Op . Ar mm Op . Ar year +.Sm on +.Ek +.Oc +.Op Fl U Ar UTC-offset +.Op Fl W Ar num +.Sh DESCRIPTION +The +.Nm +utility checks the current directory for a file named +.Pa calendar +and displays lines that fall into the specified date range. +On the day before a weekend (normally Friday), events for the next +three days are displayed. +.Pp +The following options are available: +.Bl -tag -width Ds +.It Fl A Ar num +Print lines from today and the next +.Ar num +days (forward, future). +.It Fl a +Process the ``calendar'' files of all users and mail the results +to them. +This requires super-user privileges. +.It Fl B Ar num +Print lines from today and the previous +.Ar num +days (backward, past). +.It Fl D Ar moon|sun +Print UTC offset, longitude and moon or sun information. +.It Fl d +Debug option: print current date information. +.It Fl F Ar friday +Specify which day of the week is ``Friday'' (the day before the +weekend begins). +Default is 5. +.It Fl f Pa calendarfile +Use +.Pa calendarfile +as the default calendar file. +.It Fl l Ar longitude +Perform lunar and solar calculations from this longitude. +If neither longitude nor UTC offset is specified, the calculations will +be based on the difference between UTC time and localtime. +If both are specified, UTC offset overrides longitude. +.It Xo Fl t +.Sm off +.Ar dd +.Op . Ar mm Op . Ar year +.Sm on +.Xc +For test purposes only: set date directly to argument values. +.It Fl U Ar UTC-offset +Perform lunar and solar calculations from this UTC offset. +If neither UTC offset nor longitude is specified, the calculations +will be based on the difference between UTC time and localtime. +If both are specified, UTC offset overrides longitude. +.It Fl W Ar num +Print lines from today and the next +.Ar num +days (forward, future). +Ignore weekends when calculating the number of days. +.El +.Sh FILE FORMAT +To handle calendars in your national code table you can specify +.Dq LANG= +in the calendar file as early as possible. +.Pp +To handle the local name of sequences, you can specify them as: +.Dq SEQUENCE= +in the calendar file as early as possible. +.Pp +The names of the following special days are recognized: +.Bl -tag -width 123456789012345 -compact +.It Easter +Catholic Easter. +.It Paskha +Orthodox Easter. +.It NewMoon +The lunar New Moon. +.It FullMoon +The lunar Full Moon. +.It MarEquinox +The solar equinox in March. +.It JunSolstice +The solar solstice in June. +.It SepEquinox +The solar equinox in September. +.It DecSolstice +The solar solstice in December. +.It ChineseNewYear +The first day of the Chinese year. +.El +These names may be reassigned to their local names via an assignment +like +.Dq Easter=Pasen +in the calendar file. +.Pp +Other lines should begin with a month and day. +They may be entered in almost any format, either numeric or as character +strings. +If the proper locale is set, national month and weekday +names can be used. +A single asterisk (``*'') matches every month. +A day without a month matches that day of every week. +A month without a day matches the first of that month. +Two numbers default to the month followed by the day. +Lines with leading tabs default to the last entered date, allowing +multiple line specifications for a single date. +.Pp +The names of the recognized special days may be followed by a +positive or negative integer, like: +.Dq Easter+3 +or +.Dq Paskha-4 . +.Pp +Weekdays may be followed by ``-4'' ...\& ``+5'' (aliases for +last, first, second, third, fourth) for moving events like +``the last Monday in April''. +.Pp +By convention, dates followed by an asterisk are not fixed, i.e., change +from year to year. +.Pp +Day descriptions start after the first character in the line; +if the line does not contain a character, it is not displayed. +If the first character in the line is a character, it is treated as +a continuation of the previous line. +.Pp +The +.Nm +file is preprocessed by a limited subset of +.Xr cpp 1 +internally, allowing the inclusion of shared files such as +lists of company holidays or meetings. +This limited subset consists of \fB#include #ifndef #endif\fR and \fB#define\fR. +If the shared file is not referenced by a full pathname, +.Xr calendar 1 +searches in the current (or home) directory first, and then in the +directory +.Pa /usr/share/calendar . +Empty lines and lines protected by the C commenting syntax +.Pq Li /* ... */ +are ignored. +.Pp +Some possible calendar entries ( characters highlighted by +\fB\et\fR sequence) +.Bd -unfilled -offset indent +LANG=C +Easter=Ostern + +#include +#include + +6/15\fB\et\fRJune 15 (if ambiguous, will default to month/day). +Jun. 15\fB\et\fRJune 15. +15 June\fB\et\fRJune 15. +Thursday\fB\et\fREvery Thursday. +June\fB\et\fREvery June 1st. +15 *\fB\et\fR15th of every month. +2010/4/15\fB\et\fR15 April 2010 + +May Sun+2\fB\et\fRsecond Sunday in May (Muttertag) +04/SunLast\fB\et\fRlast Sunday in April, +\fB\et\fRsummer time in Europe +Easter\fB\et\fREaster +Ostern-2\fB\et\fRGood Friday (2 days before Easter) +Paskha\fB\et\fROrthodox Easter + +.Ed +.Sh FILES +.Bl -tag -width calendar.christian -compact +.It Pa calendar +file in current directory. +.It Pa ~/.calendar +.Pa calendar +HOME directory. +A chdir is done into this directory if it exists. +.It Pa ~/.calendar/calendar +calendar file to use if no calendar file exists in the current directory. +.It Pa ~/.calendar/nomail +do not send mail if this file exists. +.El +.Pp +The following default calendar files are provided in +.Pa /usr/share/calendar: +.Pp +.Bl -tag -width calendar.southafrica -compact +.It Pa calendar.all +File which includes all the default files. +.It Pa calendar.australia +Calendar of events in Australia. +.It Pa calendar.birthday +Births and deaths of famous (and not-so-famous) people. +.It Pa calendar.christian +Christian holidays. +This calendar should be updated yearly by the local system administrator +so that roving holidays are set correctly for the current year. +.It Pa calendar.computer +Days of special significance to computer people. +.It Pa calendar.croatian +Calendar of events in Croatia. +.It Pa calendar.dutch +Calendar of events in the Netherlands. +.It Pa calendar.freebsd +Birthdays of +.Fx +committers. +.It Pa calendar.french +Calendar of events in France. +.It Pa calendar.german +Calendar of events in Germany. +.It Pa calendar.history +Everything else, mostly U.S.\& historical events. +.It Pa calendar.holiday +Other holidays, including the not-well-known, obscure, and +.Em really +obscure. +.It Pa calendar.judaic +Jewish holidays. +The entries for this calendar have been obtained from the port +deskutils/hebcal. +.It Pa calendar.music +Musical events, births, and deaths. +Strongly oriented toward rock 'n' roll. +.It Pa calendar.newzealand +Calendar of events in New Zealand. +.It Pa calendar.russian +Russian calendar. +.It Pa calendar.southafrica +Calendar of events in South Africa. +.It Pa calendar.usholiday +U.S.\& holidays. +This calendar should be updated yearly by the local system administrator +so that roving holidays are set correctly for the current year. +.It Pa calendar.world +Includes all calendar files except for national files. +.El +.Sh COMPATIBILITY +The +.Nm +program previously selected lines which had the correct date anywhere +in the line. +This is no longer true, the date is only recognized when it occurs +at the beginning of a line. +.Sh SEE ALSO +.Xr at 1 , +.Xr mail 1 , +.Xr cron 8 +.Sh HISTORY +A +.Nm +command appeared in +.At v7 . +.Sh NOTES +Chinese New Year is calculated at 120 degrees east of Greenwich, +which roughly corresponds with the east coast of China. +For people west of China, this might result that the start of Chinese +New Year and the day of the related new moon might differ. +.Pp +The phases of the moon and the longitude of the sun are calculated +against the local position which corresponds with 30 degrees times +the time-difference towards Greenwich. +.Pp +The new and full moons are happening on the day indicated: They +might happen in the time period in the early night or in the late +evening. +It does not indicate that they are starting in the night on that date. +.Pp +Because of minor differences between the output of the formulas +used and other sources on the Internet, Druids and Werewolves should +double-check the start and end time of solar and lunar events. +.Sh BUGS +The +.Nm +internal cpp does not correctly do #ifndef and will discard the rest +of the file if a #ifndef is triggered. +It also has a maximum of 50 include file and/or 100 #defines +and only recognises #include, #define and +#ifndef. +.Pp +There is no possibility to properly specify the local position +needed for solar and lunar calculations. diff --git a/usr.bin/calendar/calendar.c b/usr.bin/calendar/calendar.c new file mode 100644 index 000000000000..a2d015fa791e --- /dev/null +++ b/usr.bin/calendar/calendar.c @@ -0,0 +1,258 @@ +/*- + * SPDX-License-Identifier: BSD-3-Clause + * + * Copyright (c) 1989, 1993, 1994 + * The Regents of the University of California. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#ifndef lint +static const char copyright[] = +"@(#) Copyright (c) 1989, 1993\n\ + The Regents of the University of California. All rights reserved.\n"; +#endif + +#if 0 +#ifndef lint +static char sccsid[] = "@(#)calendar.c 8.3 (Berkeley) 3/25/94"; +#endif +#endif + +#include +__FBSDID("$FreeBSD$"); + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "calendar.h" + +#define UTCOFFSET_NOTSET 100 /* Expected between -24 and +24 */ +#define LONGITUDE_NOTSET 1000 /* Expected between -360 and +360 */ + +struct passwd *pw; +int doall = 0; +int debug = 0; +static char *DEBUG = NULL; +static time_t f_time = 0; +double UTCOffset = UTCOFFSET_NOTSET; +int EastLongitude = LONGITUDE_NOTSET; +#ifdef WITH_ICONV +const char *outputEncoding = NULL; +#endif + +static void usage(void) __dead2; + +int +main(int argc, char *argv[]) +{ + int f_dayAfter = 0; /* days after current date */ + int f_dayBefore = 0; /* days before current date */ + int Friday = 5; /* day before weekend */ + + int ch; + struct tm tp1, tp2; + + (void)setlocale(LC_ALL, ""); + + while ((ch = getopt(argc, argv, "-A:aB:D:dF:f:l:t:U:W:?")) != -1) + switch (ch) { + case '-': /* backward contemptible */ + case 'a': + if (getuid()) { + errno = EPERM; + err(1, NULL); + } + doall = 1; + break; + + case 'W': /* we don't need no steenking Fridays */ + Friday = -1; + /* FALLTHROUGH */ + + case 'A': /* days after current date */ + f_dayAfter = atoi(optarg); + if (f_dayAfter < 0) + errx(1, "number of days must be positive"); + break; + + case 'B': /* days before current date */ + f_dayBefore = atoi(optarg); + if (f_dayBefore < 0) + errx(1, "number of days must be positive"); + break; + + case 'D': /* debug output of sun and moon info */ + DEBUG = optarg; + break; + + case 'd': /* debug output of current date */ + debug = 1; + break; + + case 'F': /* Change the time: When does weekend start? */ + Friday = atoi(optarg); + break; + + case 'f': /* other calendar file */ + calendarFile = optarg; + break; + + case 'l': /* Change longitudal position */ + EastLongitude = strtol(optarg, NULL, 10); + break; + + case 't': /* other date, for tests */ + f_time = Mktime(optarg); + break; + + case 'U': /* Change UTC offset */ + UTCOffset = strtod(optarg, NULL); + break; + + case '?': + default: + usage(); + } + + argc -= optind; + argv += optind; + + if (argc) + usage(); + + /* use current time */ + if (f_time <= 0) + (void)time(&f_time); + + /* if not set, determine where I could be */ + { + if (UTCOffset == UTCOFFSET_NOTSET && + EastLongitude == LONGITUDE_NOTSET) { + /* Calculate on difference between here and UTC */ + time_t t; + struct tm tm; + long utcoffset, hh, mm, ss; + double uo; + + time(&t); + localtime_r(&t, &tm); + utcoffset = tm.tm_gmtoff; + /* seconds -> hh:mm:ss */ + hh = utcoffset / SECSPERHOUR; + utcoffset %= SECSPERHOUR; + mm = utcoffset / SECSPERMINUTE; + utcoffset %= SECSPERMINUTE; + ss = utcoffset; + + /* hh:mm:ss -> hh.mmss */ + uo = mm + (100.0 * (ss / 60.0)); + uo /= 60.0 / 100.0; + uo = hh + uo / 100; + + UTCOffset = uo; + EastLongitude = UTCOffset * 15; + } else if (UTCOffset == UTCOFFSET_NOTSET) { + /* Base on information given */ + UTCOffset = EastLongitude / 15; + } else if (EastLongitude == LONGITUDE_NOTSET) { + /* Base on information given */ + EastLongitude = UTCOffset * 15; + } + } + + settimes(f_time, f_dayBefore, f_dayAfter, Friday, &tp1, &tp2); + generatedates(&tp1, &tp2); + + /* + * FROM now on, we are working in UTC. + * This will only affect moon and sun related events anyway. + */ + if (setenv("TZ", "UTC", 1) != 0) + errx(1, "setenv: %s", strerror(errno)); + tzset(); + + if (debug) + dumpdates(); + + if (DEBUG != NULL) { + dodebug(DEBUG); + exit(0); + } + + if (doall) + while ((pw = getpwent()) != NULL) { + pid_t pid; + + if (chdir(pw->pw_dir) == -1) + continue; + pid = fork(); + if (pid < 0) + err(1, "fork"); + if (pid == 0) { + login_cap_t *lc; + + lc = login_getpwclass(pw); + if (setusercontext(lc, pw, pw->pw_uid, + LOGIN_SETALL) != 0) + errx(1, "setusercontext"); + cal(); + exit(0); + } + } + else { +#ifdef WITH_ICONV + /* Save the information about the encoding used in the terminal. */ + outputEncoding = strdup(nl_langinfo(CODESET)); + if (outputEncoding == NULL) + errx(1, "cannot allocate memory"); +#endif + cal(); + } + exit(0); +} + + +static void __dead2 +usage(void) +{ + + fprintf(stderr, "%s\n%s\n%s\n", + "usage: calendar [-A days] [-a] [-B days] [-D sun|moon] [-d]", + " [-F friday] [-f calendarfile] [-l longitude]", + " [-t dd[.mm[.year]]] [-U utcoffset] [-W days]" + ); + exit(1); +} diff --git a/usr.bin/calendar/calendar.h b/usr.bin/calendar/calendar.h new file mode 100644 index 000000000000..2604568352b5 --- /dev/null +++ b/usr.bin/calendar/calendar.h @@ -0,0 +1,206 @@ +/*- + * SPDX-License-Identifier: BSD-3-Clause + * + * Copyright (c) 1989, 1993, 1994 + * The Regents of the University of California. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $FreeBSD$ + */ + +#include +#include + +#define SECSPERDAY (24 * 60 * 60) +#define SECSPERHOUR (60 * 60) +#define SECSPERMINUTE (60) +#define MINSPERHOUR (60) +#define HOURSPERDAY (24) +#define FSECSPERDAY (24.0 * 60.0 * 60.0) +#define FSECSPERHOUR (60.0 * 60.0) +#define FSECSPERMINUTE (60.0) +#define FMINSPERHOUR (60.0) +#define FHOURSPERDAY (24.0) + +#define DAYSPERYEAR 365 +#define DAYSPERLEAPYEAR 366 + +/* Not yet categorized */ + +extern struct passwd *pw; +extern int doall; +extern time_t t1, t2; +extern const char *calendarFile; +extern int yrdays; +extern struct fixs neaster, npaskha, ncny, nfullmoon, nnewmoon; +extern struct fixs nmarequinox, nsepequinox, njunsolstice, ndecsolstice; +extern double UTCOffset; +extern int EastLongitude; +#ifdef WITH_ICONV +extern const char *outputEncoding; +#endif + +#define isleap(y) ((((y) % 4) == 0 && ((y) % 100) != 0) || ((y) % 400) == 0) + +/* Flags to determine the returned values by determinestyle() in parsedata.c */ +#define F_NONE 0x00000 +#define F_MONTH 0x00001 +#define F_DAYOFWEEK 0x00002 +#define F_DAYOFMONTH 0x00004 +#define F_MODIFIERINDEX 0x00008 +#define F_MODIFIEROFFSET 0x00010 +#define F_SPECIALDAY 0x00020 +#define F_ALLMONTH 0x00040 +#define F_ALLDAY 0x00080 +#define F_VARIABLE 0x00100 +#define F_EASTER 0x00200 +#define F_CNY 0x00400 +#define F_PASKHA 0x00800 +#define F_NEWMOON 0x01000 +#define F_FULLMOON 0x02000 +#define F_MAREQUINOX 0x04000 +#define F_SEPEQUINOX 0x08000 +#define F_JUNSOLSTICE 0x10000 +#define F_DECSOLSTICE 0x20000 +#define F_YEAR 0x40000 + +#define STRING_EASTER "Easter" +#define STRING_PASKHA "Paskha" +#define STRING_CNY "ChineseNewYear" +#define STRING_NEWMOON "NewMoon" +#define STRING_FULLMOON "FullMoon" +#define STRING_MAREQUINOX "MarEquinox" +#define STRING_SEPEQUINOX "SepEquinox" +#define STRING_JUNSOLSTICE "JunSolstice" +#define STRING_DECSOLSTICE "DecSolstice" + +#define MAXCOUNT 125 /* Random number of maximum number of + * repeats of an event. Should be 52 + * (number of weeks per year), if you + * want to show two years then it + * should be 104. If you are seeing + * more than this you are using this + * program wrong. + */ + +/* + * All the astronomical calculations are carried out for the meridian 120 + * degrees east of Greenwich. + */ +#define UTCOFFSET_CNY 8.0 + +extern int debug; /* show parsing of the input */ +extern int year1, year2; + +/* events.c */ +/* + * Event sorting related functions: + * - Use event_add() to create a new event + * - Use event_continue() to add more text to the last added event + * - Use event_print_all() to display them in time chronological order + */ +struct event *event_add(int, int, int, char *, int, char *, char *); +void event_continue(struct event *events, char *txt); +void event_print_all(FILE *fp); +struct event { + int year; + int month; + int day; + int var; + char *date; + char *text; + char *extra; + struct event *next; +}; + +/* locale.c */ + +struct fixs { + char *name; + size_t len; +}; + +extern const char *days[]; +extern const char *fdays[]; +extern const char *fmonths[]; +extern const char *months[]; +extern const char *sequences[]; +extern struct fixs fndays[8]; /* full national days names */ +extern struct fixs fnmonths[13]; /* full national months names */ +extern struct fixs ndays[8]; /* short national days names */ +extern struct fixs nmonths[13]; /* short national month names */ +extern struct fixs nsequences[10]; + +void setnnames(void); +void setnsequences(char *); + +/* day.c */ +extern const struct tm tm0; +extern char dayname[]; +void settimes(time_t,int before, int after, int friday, struct tm *tp1, struct tm *tp2); +time_t Mktime(char *); + +/* parsedata.c */ +int parsedaymonth(char *, int *, int *, int *, int *, char **); +void dodebug(char *type); + +/* io.c */ +void cal(void); +void closecal(FILE *); +FILE *opencalin(void); +FILE *opencalout(void); + +/* ostern.c / paskha.c */ +int paskha(int); +int easter(int); +int j2g(int); + +/* dates.c */ +extern int cumdaytab[][14]; +extern int monthdaytab[][14]; +extern int debug_remember; +void generatedates(struct tm *tp1, struct tm *tp2); +void dumpdates(void); +int remember_ymd(int y, int m, int d); +int remember_yd(int y, int d, int *rm, int *rd); +int first_dayofweek_of_year(int y); +int first_dayofweek_of_month(int y, int m); +int walkthrough_dates(struct event **e); +void addtodate(struct event *e, int year, int month, int day); + +/* pom.c */ +#define MAXMOONS 18 +void pom(int year, double UTCoffset, int *fms, int *nms); +void fpom(int year, double utcoffset, double *ffms, double *fnms); + +/* sunpos.c */ +void equinoxsolstice(int year, double UTCoffset, int *equinoxdays, int *solsticedays); +void fequinoxsolstice(int year, double UTCoffset, double *equinoxdays, double *solsticedays); +int calculatesunlongitude30(int year, int degreeGMToffset, int *ichinesemonths); + +#ifdef WITH_ICONV +void set_new_encoding(void); +#endif diff --git a/usr.bin/calendar/calendars/calendar.all b/usr.bin/calendar/calendars/calendar.all new file mode 100644 index 000000000000..6ed1ccee6ea0 --- /dev/null +++ b/usr.bin/calendar/calendars/calendar.all @@ -0,0 +1,24 @@ +/* + * International and national calendar files + * + * $FreeBSD$ + */ + +#ifndef _calendar_all_ +#define _calendar_all_ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#endif /* !_calendar_all_ */ diff --git a/usr.bin/calendar/calendars/calendar.australia b/usr.bin/calendar/calendars/calendar.australia new file mode 100644 index 000000000000..d0865349f7b3 --- /dev/null +++ b/usr.bin/calendar/calendars/calendar.australia @@ -0,0 +1,72 @@ +/* + * Australian holidays + * + * $FreeBSD$ + */ + +#ifndef _calendar_australia_ +#define _calendar_australia_ + +LANG=en_AU.ISO8859-1 + +/* Australia */ +Jan 26 Australia Day +Apr/SunFirst Daylight Savings Time ends in ACT, NSW, SA, TAS and VIC. +Apr 25 Anzac Day +Jun/MonSecond Queen's Birthday Holiday (Australia, except WA) +Oct/SunFirst Daylight Savings Time starts in ACT, NSW, SA and VIC. + +/* ACT, NSW, common */ +Mar/MonSecond Canberra Day (ACT) +Sep/MonLast Family & Community Day (ACT) +Aug/MonFirst Bank Holiday (ACT, NSW) +Oct/MonFirst Labour Day (ACT, NSW, SA) + +/* Victoria */ +Mar/MonSecond Labour Day (VIC) +Nov/TueFirst Melbourne Cup (VIC) + +/* Tasmania + * http://www.wst.tas.gov.au/employment_info/public_holidays/html/2010 + */ +Feb/MonSecond Regatta Day (TAS) +Feb/WedLast Launceston Cup (TAS) +Mar/TueFirst King Island show (TAS) +Mar/MonSecond Eight Hours Day (TAS) +Oct 10 Launceston Show Day (TAS) /* Thursday preceding second Saturday in October */ +Oct 24 Hobart Show Day (TAS) /* Thursday preceding fourth Saturday in October */ +Nov/MonFirst Recreation Day (N TAS) + +/* +Oct/SatSecond-2 Launceston Show Day (TAS) // Thursday preceding second Sat in October +Oct/SatFourth-2 Hobart Show Day (TAS) // Thursday preceding fourth Sat in October +May/ThuFirst+1 Agfest (Circular Head only) // Friday following the first Thursday in May +Oct/SatFirst-1 Burnie Show // Friday preceding first Saturday in October +Oct/SatThird-1 Flinders Island Show // Friday preceding third Saturday in October + +DEVONPORT CUP Wednesday not earlier than fifth and not later than eleventh day of January +DEVONPORT SHOW Friday nearest last day in November, but not later than first day of December +*/ + +/* South Australia */ +May/MonThird Adelaide Cup (SA) +Dec 26 Proclamation Day holiday (SA) + +/* Western Australia */ +Mar/MonFirst Labour Day (WA) +Jun/MonFirst Foundation Day (WA) +Sep 30 Queen's Birthday (WA) + +/* Northern Territory */ +May/MonFirst May Day (NT) +Jul/FriFirst Alice Springs Show Day (NT) +Jul/FriSecond Tennant Creek Show Day (NT) +Jul/FriThird Katherine Show Day (NT) +Jul/FriLast Darwin Show Day (NT) +Aug/MonFirst Picnic Day (NT) + +/* Queensland */ +May/MonFirst Labour Day (QLD) +Aug/WedSecond RNA Show Day (Brisbane metro) /* Second Last Wednesday */ + +#endif diff --git a/usr.bin/calendar/calendars/calendar.birthday b/usr.bin/calendar/calendars/calendar.birthday new file mode 100644 index 000000000000..60b505656ceb --- /dev/null +++ b/usr.bin/calendar/calendars/calendar.birthday @@ -0,0 +1,304 @@ +/* + * Birthday + * + * $FreeBSD$ + */ + +#ifndef _calendar_birthday_ +#define _calendar_birthday_ +#undef unix + +01/01 J.D. Salinger born, 1919 +01/01 Paul Revere born in Boston, 1735 +01/02 Isaac Asimov born in Petrovichi, Russian SFSR, 1920 +01/04 George Washington Carver born in Missouri, 1864 +01/04 Jakob Grimm born, 1785 +01/04 Wilhelm Beer born, 1797, first astronomer to map Mars +01/05 DeWitt B. Brace born, 1859, inventor of spectrophotometer +01/10 Ethan Allen born, 1738 +01/11 Alexander Hamilton born in Nevis, British West Indies, 1757? +01/12 "Long" John Baldry is born in London, 1941 +01/13 Horatio Alger born, 1834 +01/13 Sophie Tucker born, 1884 +01/13 Wilhelm Wien born, 1864, Nobel prize for blackbody radiation laws +01/14 Albert Schweitzer born, 1875 +01/15 Martin Luther King, Jr. born +01/17 Benjamin Franklin born in Boston, 1706 +01/19 Edgar Allan Poe born in Boston, 1809 +01/19 Robert Edward Lee born in Stratford Estate, Virginia, 1807 +01/20 George Burns born, 1898 +01/21 Lenin died, 1924 +01/21 Thomas Jonathan "Stonewall" Jackson born in Clarksburg, VA, 1824 +01/22 Sir Francis Bacon born, 1561 +01/23 Ernst Abbe born, 1840, formulated diffraction theory +01/23 Humphrey Bogart born in New York City, 1899 +01/23 John Hancock born, 1737 +01/23 Joseph Hewes born, 1730 +01/23 Samuel Barber died, 1981 +01/24 John Belushi is born in Chicago, 1949 +01/25 Robert Burns born, 1759 +01/25 Virginia Woolf born, 1882 +01/25 W. Somerset Maugham born, 1874 +01/27 Samuel Gompers born, 1850 +01/30 Franklin Delano Roosevelt born in Hyde Park, New York, 1882 +01/31 Jackie Robinson born, 1919 +02/03 Gertrude Stein born, 1874 +02/04 Ken Thompson, creator of unix, born, 1943 +02/05 Alex Harvey (SAHB) is born in Glasgow, Scotland, 1935 +02/06 King George VI of UK dies; his daughter becomes Elizabeth II, 1952 +02/07 Sinclair Lewis born, 1885 +02/08 Friedleib F. Runge born, 1795, father of paper chromatography +02/08 Jules Verne born in Nantes, France, 1828 +02/09 George Hartmann born, 1489, designed astrolabes, timepieces, etc. +02/10 Charles Lamb born, 1775 +02/10 William Allen White born, 1868 +02/11 Thos. Edison born, 1847 +02/11 William Henry Fox Talbot (photographic pioneer) born, 1800 +02/12 Abraham Lincoln born, 1809 +02/12 Charles Darwin born in Shrewsbury, England, 1809 +02/15 Galileo Galilei born in Pisa, Italy, 1564 +02/15 Susan B. Anthony born, 1820 +02/16 Pierre Bouguer born, 1698, founder of photometry +02/17 Federick Eugene Ives born, 1856, pioneer of halftone +02/17 Marion Anderson born, 1902 +02/17 T. J. Watson, Sr. born, 1874 +02/18 Ernst Mach born, 1838, philosopher & optics pioneer +02/19 Nicolas Copernicus born in Thorn, Poland, 1473 +02/20 Ludwig Boltzmann born, 1838, atomic physics pioneer +02/21 Alexis De Rochon born, 1838, developed the spyglass +02/22 George Washington born, 1732 +02/22 Pierre Jules Cesar Janssen born, 1838, found hydrogen in the sun +02/23 W.E.B. DuBois born, 1868 +02/24 Winslow Homer born, 1836 +02/24 Steve Jobs born, 1955 +02/25 George Harrison born in Liverpool, England, 1943 +02/25 Renoir born, 1841 +02/26 Dominique Francois Jean Arago born, 1786; + observed "Poisson's spot" cf June 21 +02/28 Michel de Mantaigne born, 1533 +02/29 Herman Hollerith born, 1860 +03/01 David Niven born, 1910 +03/02 Dr. Seuss born, 1904 +03/04 Casimir Pulaski born, 1747 +03/05 John Belushi dies in Los Angeles, 1982 +03/07 Sir John Frederick William Herschel born, 1792, astronomer +03/08 Alvan Clark born, 1804, astronomer & lens manufacturer +03/08 Howard Aiken born, 1900 +03/11 Robert Treat Paine born, 1737 +03/11 Vannevar Bush born, 1890 +03/12 Gustav Robert Kirchhoff born, 1824, physicist +03/14 Albert Einstein born, 1879 +03/14 Casey Jones born, 1864 +03/14 Giovanni Virginia Schiaparelli born, 1835, astronomer; + named Mars "canals" +03/14 Jean Baptiste Joseph Fourier born, 1768, mathematician & physicist +03/15 Andrew "Old Hickory" Jackson, 7th President of the United States, + born in Waxhaw, South Carolina, 1767 +03/15 J.J. Robert's Birthday in Liberia +03/16 George Clymer born, 1739 +03/16 James Madison, 4th President of the United States, born in King George + County, Virginia, 1751 +03/21 NetBSD project born, 1993 +03/24 Harry Houdini born, 1874 +03/26 Benjamin Thompson born, 1753, Count Rumford; physicist +03/26 David Packard died, 1996; age of 83 +03/27 Wilhelm Conrad Roentgen born, 1845, discoverer of X-rays +03/28 Pierre Simon de Laplace born, 1749, mathematician & astronomer +03/30 Francisco Jose de Goya born, 1746 +03/30 Sean O'Casey born, 1880 +03/30 Vincent Van Gogh born, 1853 +03/31 Rene Descartes born, 1596, mathematician & philosopher +04/02 Hans Christian Andersen born, 1805, fairy tale author +04/02 Pope John Paul II (Karol Wojtyla) died in Vatican, 2005 +04/03 Washington Irving born, 1783 +04/05 Thomas Hobbes born, 1588, philosopher +04/08 Buddha born, 563 BC +04/08 David Rittenhouse born, 1732, astronomer & mathematician +04/09 Edward Muybridge born, 1830, motion-picture pioneer +04/09 J. Presper Eckert born, 1919 +04/10 Commodore Matthew Calbraith Perry born, 1794 +04/10 William Booth born, 1829, founder of the Salvation Army +04/13 Thomas Jefferson, 3rd President of the United States, born Shadwell + Plantation, Albemarle County, Virginia, 1743 +04/14 Christiaan Huygens born, 1629, physicist & astronomer; + discovered Saturn's rings +04/15 Leonardo da Vinci born, 1452 +04/16 Charles (Charlie) Chaplin (Sir) born in London, 1889 +04/22 Kant born, 1724 +04/27 Louis Victor de Broglie born, 1774, physicist +04/28 James Monroe, 5th President of the United States, born in Westmoreland + County, Viriginia, 1758 +04/29 Jules Henri Poincare born, 1854, founder of topology +04/29 William Randolph Hearst born in San Francisco, 1863 +04/30 Karl Friedrich Gauss born, 1777, mathematician & astronomer +05/01 Little Walter (Marion Walter Jacobs) is born in Alexandria, + Louisiana, 1930 +05/02 Dr. Benjamin Spock born, 1903 +05/04 Alice Liddell born, 1852, Alice's Adventures in Wonderland + & Through the Looking-Glass +05/09 Pinza died, 1957 +05/10 Fred Astaire (Frederick Austerlitz) born in Omaha, Nebraska, 1899 +05/11 Johnny Appleseed born, 1768 +05/12 Florence Nightingale born in Florence, Italy, 1820 +05/13 Arthur S. Sullivan born, 1842 +05/15 Mike Oldfield is born in Essex, England, 1953 +05/18 Pope John Paul II (Karol Wojtyla) born in Wadowice, Poland, 1920 +05/19 Ho Chi Minh born, 1890 +05/21 Plato (Aristocles) born in Athens(?), 427BC +05/27 Hubert H. Humphrey born, 1911 +05/28 Dionne quintuplets born, 1934 +05/29 Gilbert Keith Chesterton born, 1874 +05/29 John Fitzgerald Kennedy, 35th President of the United States, born in + Brookline, Massachusetts, 1917 +05/29 Patrick Henry born, 1736 +05/30 Mel (Melvin Jerome) Blanc born in San Francisco, 1908 +06/01 Brigham Young born, 1801 +06/01 Marilyn Monroe born, 1928 +06/02 Edward Elgar (Sir) born in Worcester, England, 1857 +06/03 Henry James born, 1811 +06/07 (Eugene Henri) Paul Gaugin born, 1848 +06/07 George Bryan "Beau" Brummel born, 1778 +06/07 Alan Mathison Turing died, 1954 +06/08 Frank Lloyd Wright born in Richland Center, Wisconsin, 1867 +06/13 Alexander the Great dies (323BC) +06/15 Edvard Hagerup Grieg born in Bergen, Norway, 1843 +06/16 Hammurabi the Great dies, Babylon, 1686 BC +06/18 M.C. Escher born, 1898 +06/19 FreeBSD project born, 1993 +06/22 Carl Hubbell born, 1903 +06/22 Meryl Streep born in Summit, New Jersey, 1949 +06/22 Konrad Zuse born in Berlin, 1919 +06/23 Alan Mathison Turing born, 1912 +06/25 Eric Arthur Blair (a.k.a. George Orwell) born, 1903 +06/27 Helen Keller born, 1880 +07/03 Franz Kafka born, 1883 +07/04 Nathaniel Hawthorne born in Salem, Massachusetts, 1804 +07/04 John Adams and Thomas Jefferson die on same day, 1826 +07/06 (Helen) Beatrix Potter born, 1866 +07/06 John Paul Jones born, 1747 +07/07 P.T. Barnum dies, 1891 +07/08 Count Ferdinand von Zeppelin born, 1838 +07/10 John Calvin born, 1509 +07/11 John Quincy Adams, 6th President of the United States, born in + Braintree, Massachusetts, 1767 +07/12 Henry David Thoreau born, 1817 +07/15 Clement Clarke Moore born, 1779, author of "A Visit from + Saint Nicholas" +07/18 Brian Auger is born in London, 1939 +07/25 Steve Goodman is born in Chicago, 1948 +07/29 Mussolini born, 1883 +07/30 Emily Bronte born, 1818 +07/30 Henry Ford born, 1863 +08/01 Herman Melville born, 1819 +08/03 Lenny Bruce dies of a morphine overdose, 1966 +08/06 Jonathan B. Postel is born in Altadena, California, 1943 +08/08 Dustin Hoffman born in Los Angeles, 1937 +08/12 Thomas Mann's Death, 1955 +08/13 Alfred Hitchcock born, 1899 +08/13 Annie Oakley born, 1860 +08/13 Fidel Castro born, 1927 +08/17 Mae West born, 1892 +08/18 Meriwether Lewis born, 1774 +08/20 Leon Trotsky assassinated, 1940 +08/21 Christopher Robin Milne born, 1920 +08/21 Winnie-the-Pooh (Edward Bear) born (given to Christopher Robin + Milne), 1921 +08/23 Gene Kelly born, 1912 +08/27 Lyndon B. Johnson born, 1908 +08/29 Oliver Wendell Holmes born, 1809, physician & father of the jurist +08/30 John W. Mauchly born, 1907 +09/05 King Louis XIV of France born, 1638 +09/05 Raquel Welch born, 1942 +09/06 Word is received that Perry has reached the North Pole and died, 1909 +09/07 James Fenimore Cooper born in Burlington, NJ, 1789 +09/07 Queen Elizabeth I of England born, 1533 +09/08 Richard ``the Lionheart'', king of England born in Oxford, 1157 +09/08 Peter Sellers born in Southsea, England, 1925 +09/09 Chinese Communist Party Chairman Mao Tse-Tung dies at age 82, 1976 +09/09 Dennis MacAlistair Ritchie, creator of C, born, 1941 +09/12 Jesse Owens born, 1913 +09/13 Walter Reed born, 1851 +09/15 Agatha Christie born in Torquay, England, 1890 +09/16 Allen Funt born in Brooklyn, NY, 1914 +09/18 Greta Garbo born, 1905 +09/18 Jimi Hendrix dies from an overdose, 1970 +09/20 Upton (Beall) Sinclair born, 1878 +09/21 H.G. (Herbert George) Wells born in Bromley, England, 1866 +09/21 Louis Joliet born, 1645 +09/22 President Garfield dies of wounds in Baltimore, 1881 +09/23 Augustus (Gaius Octavius) Caesar born in Rome, 63 BC +09/23 Euripides born in Salamis, Greece, 480 BC +09/24 F. Scott Fitzgerald born, 1896 +09/26 Johnny Appleseed born, 1774 +09/26 T.S. (Thomas Stearns) Eliot born in St. Louis, 1888 +09/27 Thomas Nast born, 1840 +09/28 Michelangelo Buonarroti born in Caprese, Italy, 1573 +09/28 Pompey (Gnaeus Pompeius Magnus) born in Rome, 106BC +09/28 Seymour Cray born, 1925 +09/29 Gene Autry born, 1907 +10/01 Jimmy Carter, 39th President of United States, born in Plains, Georgia, + 1924 +10/02 Aristotle dies of indigestion, 322 BC +10/02 Mohandas K. Gandhi born at Porbandar, Kathiawad, India, 1869 +10/04 John V. Atanasoff born, 1903 +10/05 Ray Kroc (founder of McDonald's) born, 1902 +10/05 Steve Jobs died at the age of 56, 2011 +10/12 Dennis MacAlistair Ritchie died at the age of 70, 2011 +10/13 Lenny Bruce is born in New York City, 1925 +10/13 Virgil (Publius Vergilius Maro) born near Mantua, Italy, 70 BC +10/14 Dwight David Eisenhower, 34th President of the United States, born in + Denison, Texas, 1890 +10/14 William Penn born in London, 1644 +10/15 Pelham Grenville Wodehouse born, 1881 +10/16 Noah Webster born, 1758 +10/16 Oscar (Fingal O'Flahertie Wills) Wilde born in Dublin, 1854 +10/16 Dr. Jonathan B. Postel dies at age 55, 1998 +10/17 Richard Mentor Johnson born, 1780, 9th V.P. of U.S. +10/21 Alfred Nobel born in Stockholm, 1833 +10/25 Pablo Picasso born in Malaga, Spain, 1881 +10/27 James Cook is born, 1728 +10/27 Theodore (Teddy) Roosevelt, 26th President of the United States, born + New York, New York, 1858 +10/27 Gerald M. Weinberg born, 1933 +10/30 John Adams, 2nd President of the United States, born Quincy, + Massachusetts 1735. +10/31 Chiang Kai-Shek born, 1887 +10/31 Dale Evans born, 1912 +11/02 Daniel Boone born near Reading, PA, 1734 +11/04 King William III of Orange born, 1650 +11/05 Roy Rogers born, 1912 +11/09 Carl Sagan born, 1934 +11/10 Martin Luther born in Eisleben, Germany, 1483 +11/10 Soviet President Leonid Brezhnev dies at age 75, 1982 +11/11 Kurt Vonnegut, Jr, born in Indianapolis, 1922 +11/13 Robert Louis Stevenson born, 1850 +11/13 St. Augustine of Hippo born in Numidia, Algeria, 354 +11/18 Imogene Coca born, 1908 +11/18 William S. Gilbert born, 1836 +11/20 Robert Francis Kennedy (RFK) born in Boston, Massachusetts, 1925 +11/26 Charles Schulz born in Minneapolis, 1922 +11/26 Norbert Wiener born in Columbia, Missouri, 1894 +11/29 John Mayall is born in Cheshire, England, 1933 +11/30 Cleopatra died, 30 BC +11/30 Mark Twain (Samuel Clemmens) born in Florida, Missouri, 1835 +12/01 Woody Allen (Allen Stuart Konigsberg) born in Brooklyn, NY, 1935 +12/04 Tommy Bolin dies of a heroin overdose in Miami, 1976 +12/05 Martin Van Buren, 8th President of the United States, born in + Kinderhook, New York, 1837 +12/05 Walt (Walter Elias) Disney born in Chicago, 1901 +12/08 Horace (Quintus Horatius Flaccus) born in Venosa (Italy), 65BC +12/08 James (Grover) Thurber born in Columbus, Ohio, 1894 +12/10 Emily Dickenson born, 1830 +12/12 E.G. Robinson born, 1893 +12/14 George Washington dies, 1799 +12/17 William Safire (Safir) born, 1929 +12/18 Konrad Zuse died in Hünfeld, 1995 +12/20 Carl Sagan died, 1996 +12/21 Benjamin Disraeli born, 1804 +12/22 Giacomo Puccini born, 1858 +12/23 Joseph Smith born, 1805 +12/25 Isaac Newton (Sir) born in Grantham, England, 1642 +12/26 Chas. Babbage born, 1791 +12/28 John von Neumann born, 1903 + +#endif /* !_calendar_birthday_ */ diff --git a/usr.bin/calendar/calendars/calendar.brazilian b/usr.bin/calendar/calendars/calendar.brazilian new file mode 100644 index 000000000000..d847cb3f4034 --- /dev/null +++ b/usr.bin/calendar/calendars/calendar.brazilian @@ -0,0 +1,13 @@ +/* + * $FreeBSD$ + * + * Brazilian calendar file(s), originally submitted by + * Renato Tambellini + */ + +#ifndef _calendar_brazilian_ +#define _calendar_brazilian_ + +#include + +#endif diff --git a/usr.bin/calendar/calendars/calendar.christian b/usr.bin/calendar/calendars/calendar.christian new file mode 100644 index 000000000000..f213594f84cc --- /dev/null +++ b/usr.bin/calendar/calendars/calendar.christian @@ -0,0 +1,36 @@ +/* + * Christian + * + * $FreeBSD$ + */ + +#ifndef _calendar_christian_ +#define _calendar_christian_ + +01/01 Solemnity of Mary, Mother of God +01/05 Last (twelfth) day of Christmastide +01/06 Epiphany +Easter-47 Shrove Tuesday / Mardi Gras (day before Ash Wednesday) +Easter-46 Ash Wednesday (First day of Lent) +Easter-7 Palm Sunday (7 days before Easter) +Easter-3 Maundy Thursday (3 days before Easter) +Easter-2 Good Friday (2 days before Easter) +Easter Easter Sunday +Easter+39 Ascension Day (10 days before Pentecost) +Easter+49 Pentecost (Whitsunday) +Easter+50 Whitmonday +Easter+56 Trinity Sunday (7 days after Pentecost) +Easter+60 Corpus Christi (11 days after Pentecost) +05/28* Rogation Sunday +08/15 Assumption of the Blessed Virgin Mary +10/18 Feast Day of St. Luke +11/01 All Saints' Day +11/SunLast First Sunday of Advent (4th Sunday before Christmas) +12/SunFirst First Sunday of Advent (4th Sunday before Christmas) +12/06 St. Nicholas' Day +12/08 Feast of the Immaculate Conception +12/24 Christmas Eve +12/25 Christmastide begins: First day of Christmas +12/26 Second day of Christmas (Boxing Day) + +#endif /* !_calendar_christian_ */ diff --git a/usr.bin/calendar/calendars/calendar.computer b/usr.bin/calendar/calendars/calendar.computer new file mode 100644 index 000000000000..8d6176e25f38 --- /dev/null +++ b/usr.bin/calendar/calendars/calendar.computer @@ -0,0 +1,76 @@ +/* + * Computer + * + * $FreeBSD$ + */ + +#ifndef _calendar_computer_ +#define _calendar_computer_ + +01/01 AT&T officially divests its local Bell companies, 1984 +01/01 The Epoch (Time 0 for UNIX systems, Midnight GMT, 1970) +01/03 Apple Computer founded, 1977 +01/08 American Telephone and Telegraph loses antitrust case, 1982 +01/08 Herman Hollerith patents first data processing computer, 1889 +01/08 Justice Dept. drops IBM suit, 1982 +01/10 First CDC 1604 delivered to Navy, 1960 +01/16 Set uid bit patent issued, to Dennis Ritchie, 1979 +01/17 Justice Dept. begins IBM anti-trust suit, 1969 (drops it, January 8, 1982) +01/24 DG Nova introduced, 1969 +01/25 First U.S. meeting of ALGOL definition committee, 1958 +01/26 EDVAC demonstrated, 1952 +01/31 Hewlett-Packard founded, 1939 +02/11 Last day of JOSS service at RAND Corp., 1966 +02/14 First micro-on-a-chip patented (TI), 1978 +02/15 ENIAC demonstrated, 1946 +03/01 First NPL (later PL/I) report published, 1964 +03/04 First Cray-1 shipped to Los Alamos +03/09 "GOTO considered harmful" (E.J. Dijkstra) published in CACM, 1968 +03/14 LISP introduced, 1960 +03/28 DEC announces PDP-11, 1970 +03/31 Eckert-Mauchly Computer Corp. founded, Phila, 1946 +04/01 Yourdon, Inc. founded, 1974 (It figures.) +04/03 IBM 701 introduced, 1953 +04/04 Tandy Corp. acquires Radio Shack, 1963 (9 stores) +04/07 IBM announces System/360, 1964 +04/09 ENIAC Project begun, 1943 +04/28 Zilog Z-80 introduced, 1976 +05/06 EDSAC demonstrated, 1949 +05/01 First BASIC program run at Dartmouth, 1964 +05/16 First report on SNOBOL distributed (within BTL), 1963 +05/19 UNIX is 10000 days old, 1997 +05/21 DEC announces PDP-8, 1965 +05/22 Ethernet first described, 1973 +05/27 First joint meeting of U.S. and European ALGOL definition cte., 1958 +05/28 First meeting of COBOL definition cte. (eventually CODASYL), 1959 +05/30 Colossus Mark II, 1944 +06/02 First issue of Computerworld, 1967 +06/07 Alan Mathison Turing died, 1954 +06/10 First Apple II shipped, 1977 +06/15 UNIVAC I delivered to the Census Bureau, 1951 +06/16 First publicized programming error at Census Bureau, 1951 +06/23 IBM unbundles software, 1969 +06/23 Alan Mathison Turing born, 1912 +06/30 First advanced degree on computer related topic: to H. Karamanian, + Temple Univ., Phila, 1948, for symbolic differentiation on the ENIAC +07/08 Bell Telephone Co. formed (predecessor of AT&T), 1877 +07/08 CDC incorporated, 1957 +07/FriLast System Administrator Appreciation Day +08/14 First Unix-based mallet created, 1954 +08/14 IBM PC announced, 1981 +08/22 CDC 6600 introduced, 1963 +08/23 DEC founded, 1957 +09/15 ACM founded, 1947 +09/20 Harlan Herrick runs first FORTRAN program, 1954 +10/02 First robotics-based CAM, 1939 +10/06 First GPSS manual published, 1961 +10/08 First VisiCalc prototype, 1978 +10/12 Univac gives contract for SIMULA compiler to Nygaard and Dahl, 1962 +10/14 British Computer Society founded, 1957 +10/15 First FORTRAN Programmer's Reference Manual published, 1956 +10/20 Zurich ALGOL report published, 1958 +10/25 DEC announces VAX-11/780, 1977 +11/04 UNIVAC I program predicts Eisenhower victory based on 7% of votes, 1952 +12/08 First Ph.D. awarded by Computer Science Dept, Univ. of Penna, 1965 + +#endif /* !_calendar_computer_ */ diff --git a/usr.bin/calendar/calendars/calendar.croatian b/usr.bin/calendar/calendars/calendar.croatian new file mode 100644 index 000000000000..443122744d3f --- /dev/null +++ b/usr.bin/calendar/calendars/calendar.croatian @@ -0,0 +1,12 @@ +/* + * Croatian calendar files + * + * $FreeBSD$ + */ + +#ifndef _calendar_croatian_ +#define _calendar_croatian_ + +#include + +#endif /* !_calendar_croatian_ */ diff --git a/usr.bin/calendar/calendars/calendar.dutch b/usr.bin/calendar/calendars/calendar.dutch new file mode 100644 index 000000000000..13a456b2ec48 --- /dev/null +++ b/usr.bin/calendar/calendars/calendar.dutch @@ -0,0 +1,79 @@ +/* + * $FreeBSD$ + * + * Originally submitted by Edwin Groothuis + */ + +LANG=nl_NL.ISO8859-15 +Easter=Pasen + +/* + * Feestdagen + */ +jan/01 Nieuwjaar +jan/06 Driekoningen +apr/01 1 april +apr/27 Koningsdag +mei/01 Dag van de Arbeid +mei/04 Dodenherdenking +mei/05 Bevrijdingsdag +okt/04 Dierendag +nov/01 Allerheiligen +nov/02 Allerzielen +nov/11 Sint Maarten +nov/11 Elfde-van-de-elfde +dec/05 Sinterklaasavond +dec/15 Koninkrijksdag +dec/24 Kerstavond +dec/25 Eerste Kerstdag +dec/26 Tweede Kerstdag +dec/28 Feest der Onnozele Kinderen +dec/31 Oudjaar + +/* + * Pasen gerelateerd + */ +Pasen-50 Carnaval +Pasen-49 Carnaval +Pasen-48 Carnaval +Pasen-47 Carnaval (Vastenavond) +Pasen-46 Aswoensdag +Pasen-7 Palmzondag +Pasen-3 Witte Donderdag +Pasen-2 Goede Vrijdag +Pasen-1 Stille Zaterdag +Pasen Eerste Paasdag +Pasen+1 Tweede Paasdag +Pasen+39 Hemelvaartsdag +Pasen+49 Eerste Pinksterdag +Pasen+50 Tweede Pinksterdag +Pasen+56 Trinitatis + +/* + * Misc + */ +mei/SunSecond Moederdag +jun/SunThird Vaderdag +sep/TueThird Prinsjesdag + +/* + * Het koningshuis + */ +jan/19 Prinses Margriet (1943) +jan/31 Prinses Beatrix (1938) +feb/17 Prins Willem III (1817 - 1890) +feb/18 Prinses Christina (1947) +apr/10 Prinses Ariane (2007) +apr/19 Prins Hendrik (1876 - 1934) +apr/27 Koning Willem-Alexander (1967) +apr/30 Prinses Juliana (1909 - 2004) +apr/30 Mr. Pieter van Vollenhoven (1939) +mei/17 Koningin Maxima (1971) +jun/26 Prinses Alexia (2005) +jun/29 Prins Bernhard (1911 - 2004) +aug/05 Prinses Irene (1939) +aug/31 Prinses Wilhelmina (1880 - 1962) +sep/06 Prins Claus (1925 - 2002) +sep/25 Prins Johan Friso (1968 - 2013) +okt/11 Prins Constantijn (1969) +dec/07 Kroonprinses Catharina-Amalia (2003) diff --git a/usr.bin/calendar/calendars/calendar.french b/usr.bin/calendar/calendars/calendar.french new file mode 100644 index 000000000000..18b4d8ae8a94 --- /dev/null +++ b/usr.bin/calendar/calendars/calendar.french @@ -0,0 +1,12 @@ +/* + * French calendar file(s) + * + * $FreeBSD$ + */ + +#ifndef _calendar_french_ +#define _calendar_french_ + +#include + +#endif /* !_calendar_french_ */ diff --git a/usr.bin/calendar/calendars/calendar.german b/usr.bin/calendar/calendars/calendar.german new file mode 100644 index 000000000000..635aef1d5735 --- /dev/null +++ b/usr.bin/calendar/calendars/calendar.german @@ -0,0 +1,12 @@ +/* + * German calendar file(s) + * + * $FreeBSD$ + */ + +#ifndef _calendar_german_ +#define _calendar_german_ + +#include + +#endif /* !_calendar_german_ */ diff --git a/usr.bin/calendar/calendars/calendar.history b/usr.bin/calendar/calendars/calendar.history new file mode 100644 index 000000000000..8493bd00d24b --- /dev/null +++ b/usr.bin/calendar/calendars/calendar.history @@ -0,0 +1,475 @@ +/* + * History + * + * $FreeBSD$ + */ + +#ifndef _calendar_history_ +#define _calendar_history_ + +01/01 Anniversary of the Triumph of the Revolution in Cuba +01/01 Castro expels Cuban President Batista, 1959 +01/01 Churchill delivers his "Iron Curtain" speech, 1947 +01/01 First Rose Bowl; Michigan 49 - Stanford 0, 1902 +01/04 Quadrantid meteor shower (look north) +01/05 -50 degrees F, Strawberry UT, 1913 +01/05 The FCC hears the first demonstration of FM radio, 1940 +01/05 Twelfth night +01/06 Millard Fillmore's birthday (let's party!) +01/08 Battle of New Orleans +01/09 Plough Monday +01/10 First meeting of United Nations General Assembly in London, 1946 +01/10 Thomas Paine's Common Sense published, 1776 +01/11 Anniversary of the Peoples Republic of Albania +01/11 De Hostos' Birthday in Puerto Rico +01/11 Milk delivered in bottles for first time, 1878 +01/11 Prithvi Jayanti in Nepal +01/11 Surgeon General condemned cigarettes, 1964 +01/11 The Whiskey-A-Go-Go opens on Sunset Boulevard in Los Angeles, 1963 +01/14 The first "Be-In" is held in Golden Gate Park, 1967 +01/16 Prohibition begins, 1920 +01/18 Grey whale migration, California +01/20 St. Agnes Eve (Ah, bitter chill it was...) +01/24 Eskimo Pie patented by Christian Nelson, 1922 +01/24 Gold discovered in California at Sutter's Mill, 1848 +01/26 Sydney, New South Wales settled, 1788 +01/27 Grissom, White and Chaffe burned to death in Apollo 1, 1967 +01/27 Vietnam War cease-fire signed, 1973 +01/28 First ski tow, Woodstock VT, 1914 +01/28 Space Shuttle Challenger (51-L) explodes 74 seconds after liftoff + killing Scobee, Smith, McNair, Resnick, Jarvis, Onizuka and McAuliffe, + 1986 +01/30 Mohandas Gandhi assassinated in New Delhi by Hindu fanatic, 1948 +01/30 Tet Offensive, 1968 +01/31 "Ham" the chimpanzee soars into space aboard Mercury-Redstone 2, 1961 +01/31 Explorer I launched, 1958. Van Allen Belt discovered +01/31 Irving Langmuir, 1881, invented tungsten filament lamp +02/01 First TV soap: Secret Storm, 1954 +02/01 Forces led by Khomeini take over Iran, 1979 +02/01 Space Shuttle Columbia (STS-107) disintegrates 15 minutes before landing + killing Husband, McCool, Chawla, Clark, Ramon, Brown, and Anderson, 2003 +02/04 Cybernet inaugurated, 1969 +02/04 Patricia Hearst kidnapped by Symbionese Liberation Army, 1974 +02/08 1963 Revolution Anniversary in Iraq +02/09 -51 degrees F, Vanderbilt MI, 1934 +02/12 US President Abraham Lincoln's real birthday +02/12 Santa Barbara oil leak, 1969 +02/14 Bombing of Dresden, 1945 +02/15 Chicago Seven convicted, 1970 +02/16 Nylon patented, 1937 +02/16 Stephen Decatur burns US frigate in Tripoli, 1804 +02/18 Pluto discovered by Clyde Tombaugh, Lowell Observatory, AZ, 1930 +02/19 US Marines land on Iwo Jima, 1945 +02/20 John Glenn orbits the Earth 3 times, 1962 +02/21 Battle of Verdun begins, 1916 1M casualties +02/21 First telephone directory, New Haven, Connecticut, 1878 +02/21 Malcom X shot to death in Harlem, 1965 +02/23 Lt. Calley confesses, implicates Cpt. Medina, 1971 +02/24 Impeachment proceedings against Andrew Johnson begin, 1868 +02/28 The "French Connection" drug bust occurs in Marseilles, 1972 +02/29 French and Indian raid on Deerfield MA, 1704 +03/01 Sarah Goode, Sarah Osborne, and Tituba arrested for witchcraft + in Salem, Massachusetts, 1692 +03/02 Blackthorn winds (New England) +03/04 First meeting of Congress, 1789, in N.Y.C. +03/13 "Striptease" introduced, Paris, 1894 +03/14 Teddy Roosevelt excludes Japanese laborers from continental US, 1907 +03/15 Day of the 1848 revolution in Hungary +03/15 Buzzards return to Hinckley OH +03/15 France assumes protectorate over Vietnam, 1874 +03/15 Watts, Los Angeles, riots kill two, injure 25, 1966 +03/15 Ides of March. Gaius Julius Caesar assassinated by senators, + including adoptive son Marcus Junius Brutus Caepio, 44BC +03/16 MyLai Massacre; 300 non-combatant villagers killed by US infantrymen +03/16 Robert Goddard launches first liquid-fueled rocket, Auburn MA, 1926 +03/17 Vanguard I launched, 1958. Earth proved pear-shaped +03/18 Aleksei Leonov performs first spacewalk, 1965 +03/19 Swallows return to Capistrano +03/20 Radio Caroline, the original British pirate radio station, sinks, 1980 +03/24 Construction of New York subway system begins, 1900 +03/25 Triangle Shirt Waist Fire, 1911 +03/26 Popeye statue unveiled, Crystal City TX Spinach Festival, 1937 +03/27 Khrushchev becomes Premier of Soviet Union, 1958 +03/28 Three Mile Island releases radioactive gas, 1979 +03/29 Swedish settled Christiana (Wilmington) DE, 1638 +03/30 Alaska purchased from Russia for $7.2 million, 1867 +03/30 Five rings around Uranus discovered, 1977 +03/30 Pencil with eraser patented, 1858 +04/01 People of superb intelligence, savoir-faire, etc. born this day. +04/04 Martin Luther King assassinated in Memphis, Tennessee, 1968 +04/04 NATO Established, 1949 +04/06 Joseph Smith founds Mormon Church, 1830 +04/07 Alewives run, Cape Cod +04/08 Matthew Flinders and Nicolas Baudin meet in Encounter Bay, 1802 +04/09 Lee surrenders to Grant at Appomattox Courthouse, 1865 +04/12 Confederate troops fire first shots of Civil War at Ft Sumter, 1861 +04/12 Space Shuttle Columbia launched, 1981 +04/12 Yuri Gagarin becomes the first man in space, 1961 +04/13 Laotian New Year (3 days) in Laos +04/14 US President Abraham Lincoln shot in Ford's Theatre by John Wilkes Booth, 1865 +04/14 Titanic hits iceberg and sinks, 1912 +04/15 US President Abraham Lincoln dies, 1865 +04/15 Ray Kroc opens first McDonalds in Des Plaines, IL, 1955 +04/17 Bay of Pigs invasion crushed by Castro forces, 1961 +04/18 Einstein's Death, 1955 +04/18 First Laundromat opens, Fort Worth Texas, 1934 +04/18 San Francisco earthquake, 1906 +04/19 Landing of the "33" in Uruguay +04/19 Warsaw Ghetto uprising, 1943 +04/20 Supreme Court unanimously rules in favor of busing, 1971 +04/21 Lyrid meteor shower +04/22 Vladimir Ilich Ulyanov, called Lenin, Russian political leader, born in Simbirsk, 1870 +04/23 Hank Aaron hits his first home run, 1954 +04/26 William Shakespeare baptized in Stratford-on-Avon, England, 1564, + birthdate unknown +04/27 Magellan killed in Philippines, 1521 +04/29 Zipper patented by Gideon Sindback, 1913 +05/01 Beltaine; Feast of the god Bel, sun god +05/03 Anti-war protest disrupts business in Washington, 1971 +05/04 Four Kent State students are shot down by the National Guard, 1970 +05/05 John Scopes arrested for teaching evolution, Dayton, TN, 1925 +05/06 Hindenburg explodes and burns upon landing at Lakehurst, NJ, 1937 +05/07 Germany surrenders after WWII, 1945 +05/08 Beginning of ostrich mating season +05/08 US institutes mining of Haiphong Harbor, 1972 +05/09 94 degrees, New York, 1979 +05/10 Germany invades Low Countries, 1940 +05/10 Nazi bookburning, 1933 +05/14 Beginning of Lewis and Clark Expedition, 1804 +05/14 Nation of Israel proclaimed, 1948 +05/15 Asylum for Inebriates founded, Binghamton NY, 1854 +05/17 24" rain in 11 hours, Pearl River, S. China, 1982 +05/17 Six SLA members killed in televised gun fight, 1974 +05/18 Battle of Las Piedras in Uruguay +05/18 Napoleon crowned Emperor, 1804 +05/21 Battle of Iquique in Chile +05/21 US explodes first hydrogen bomb, 1956 +05/22 US Civil War ends, 1865 +05/23 Israeli raid into Argentina to capture Adolf Eichmann, 1960 +05/23 Two Yetis sighted, Mt. Everest, 1953 +05/23 Federal Republic of Germany founded, 1949 +05/24 Battle of Pinchincha in Ecuador +05/25 Oral Roberts sees 900 foot tall Jesus Christ, Tulsa OK, 1980 +05/25 Successful test of the limelight in Purfleet, England, 1830 +05/26 Congress sets first immigration quotas, 1924 +05/27 Golden Gate Bridge opens, 1937 +05/29 Edmund Hillary and Tenzing Norkay climb Mt. Everest, 1953 +05/29 First food stamps issued, 1961 +05/30 US Marines sent to Nicaragua, 1912 +06/02 Native Americans "granted" citizenship, 1924 +06/04 Roquefort cheese developed, 1070 +06/05 Robert Kennedy assassinated, 1968 +06/05 US leaves the Gold Standard, 1933 +06/06 First drive-in movie, 1933 +06/06 Normandy landing, 1944 +06/10 Death of Alexander the Great, 323 B.C. +06/10 Denver police tear gas Jethro Tull and 2000 fans at Red Rocks, 1971 +06/11 Greeks seize Troy, 1184BC +06/13 Pioneer flies past Neptune, and therefore out of the Solar System +06/14 Sandpaper invented by I. Fischer, Jr., 1834 +06/15 Ben Franklin's kite experiment, 1752 +06/15 Magna Carta signed, 1215 +06/15 Series of photographs by Edward Muggeridge prove to Leland Stanford + that all the hooves of a horse are off the ground during the gallop, + 1878 +06/16 "The Blues Brothers" premieres in Chicago, 1980 +06/17 China explodes its first Hydrogen bomb, 1967 +06/17 Watergate Democratic National Committee break-in, 1972 +06/19 Julius and Ethel Rosenberg are executed in Sing-Sing prison, 1953 +06/19 Lizzie Bordon acquitted, 1893 +06/20 Victoria crowned, 1837 +06/21 Berlin airlift begins, 1948 +06/21 Sun rises over Heelstone at Stonehenge +06/22 Civil rights workers disappear in Mississippi, 1964 +06/23 Slavery abolished in England, 1772 +06/24 Senate repeals Gulf of Tonkin resolution, 1970 +06/25 Custer's Last Stand at Little Big Horn, 1876 +06/25 North Korea invades South Korea, 1950 +06/26 Battle of Gettysburg, 1863 +06/26 St. Lawrence Seaway dedicated by Eisenhower & Queen Elizabeth II, 1959 +06/26 Toothbrush invented, 1498 +06/27 100 degrees, Fort Yukon, 1915 +06/27 Bill Graham closes the Fillmore East, 1971 +06/28 Supreme Court decides in favor of Allan Bakke, 1978 +06/30 "That" explosion in Siberia, 1908 +06/30 China and Soviet Union announce split over ideology, 1960 +07/01 Battle of Gettysburg begins, 1863 +07/03 Dog days begin +07/04 Battles of Vicksburg and Gettysburg won by Union forces, 1863 +07/04 Cloudy, 76 degrees, Philadelphia PA, 1776 +07/04 New York abstains on Declaration of Independence vote, 1776 +07/04 Thoreau enters woods, 1845 +07/06 First `talkie' (talking motion picture) premiere in New York, 1928 +07/06 Lawrence of Arabia captures Aqaba, 1917 +07/07 First radio broadcast of "Dragnet", 1949 +07/07 Terrorists detonate four bombs on London public transport, 2005 +07/08 First public reading of the Declaration of Independence, 1776 +07/08 Liberty Bell cracks while being rung at funeral of John Marshall, 1835 +07/09 10-hour working day set by law, NH, 1847 +07/10 134 degrees in Death Valley, 1913 +07/12 Minimum wages established: 40 cents/hour, 1933 +07/13 Women first compete in Olympic games, 1908 +07/16 Detonation of the first atomic bomb at Alamagordo, NM, 1945 +07/17 Disneyland opens, 1955 +07/18 Ty Cobb gets 4000th base hit, 1927 +07/19 Five Massachusetts women executed for witchcraft, 1692 +07/20 Armstrong and Aldrin land on moon, 1969 +07/21 First Train Robbery, Jesse James gets $3000 near Adair, Iowa, 1873 +07/21 Vietnam divided at 17th parallel, 1954 +07/23 Ice cream cone introduced, St. Louis MO, 1904 +07/24 Scopes Monkey Trial, 1925 +07/30 "In God We Trust" made US motto, 1956 +07/31 Harry S. Truman dedicates N.Y. Int'l Airport @ Idlewild Field, 1948, + later JFK +08/01 Lughnasa; Feast of the god Lugh, a 30 day Celtic feast centers on + this day +08/03 Columbus sets sail for Cathay, 1492 +08/03 USS Nautilus crosses under north polar ice cap, 1958 +08/04 Axe murder of Andrew and Abbey Borden, 1892 +08/04 Bombing of N. Vietnam begins, 1964 +08/04 Britain declares war on Germany starting World War I, 1914 +08/06 Atomic bomb dropped on Hiroshima, 1945 +08/06 Caricom in Barbados +08/06 Cy Young pitches first game, 1890 +08/08 Montenegro declares war on Germany, 1914 +08/08 Richard Nixon resigns the US presidency, 1974 +08/08 The Great Train Robbery -- $7,368,000, 1963 +08/09 Helter Skelter... the Charles Manson murders take place, 1969 +08/09 Persia defeats Spartan King Leonidas at Thermopylae, 480 BC +08/09 US/Canada border defined in the Webster-Ashburton Treaty, 1842 +08/09 Atomic bomb dropped on Nagasaki, 1945 +08/09 Singapore secedes from Malaysia, 1965 +08/10 Chicago incorporated as a village of 300 people, 1833 +08/10 US and Panama agree to transfer the canal in the year 2000, 1977 +08/11 Dog days end +08/11 France Ends War in Indochina, 1954 +08/11 Perseid meteor shower (look north; three days) +08/12 First test flight of Space Shuttle "Enterprise" from 747, 1977 +08/12 Last US ground troops out of Vietnam, 1972 +08/13 Berlin wall erected, 1961 +08/13 Li'l Abner debut, 1934 +08/14 Social Security begins in US, 1935 +08/15 Gandhi's movement obtains independence for Pakistan and India, 1947 +08/15 Hurricane hits Plymouth Plantation, 1635 +08/16 Roller Coaster patented, 1898 +08/17 First public bath opened in N.Y., 1891 +08/18 Anti-Cigarette League of America formed +08/19 Air Force cargo plane snares payload from Discoverer 14 spy satellite, + marking start of practical military reconnaissance from space, 1960 +08/19 Gail Borden patents condensed milk, 1856 +08/22 Death of King Richard III, 1485, Last of the Plantagenets +08/22 Joe Walker sets X-15 all time altitude mark (67 miles), 1963 +08/22 St. Columbia reports seeing monster in Loch Ness, 565 +08/23 Sacco and Vanzetti executed, 1927 +08/24 "Alice's Restaurant" premieres in New York and Los Angeles, 1969 +08/24 -126.9 F at Vostok, Antarctica, 1960 +08/24 British troops burn Washington, 1814 +08/25 Gen. De Gaulle leads French forces into Paris, 1944 +08/26 19th amendment of US constitution gives women the vote, 1920 +08/27 "Tarzan of the Apes" published, 1912 +08/27 Krakatoa, Java explodes with a force of 1,300 megatons, 1883 +08/28 Martin Luther King leads over 200,000 in civil rights rally in Washington, DC, 1963 +08/29 Star in Cygnus goes nova and becomes 4th brightest in sky, 1975; + Nova Cygni 1975. +08/30 75 cents a pound tariff set on opium, 1842 +08/30 Japan Stationery Co. sells first felt-tipped pen, 1960 +08/30 St. Rose of Lima in Peru +08/30 Washington-to-Moscow hot line connected, 1963 +08/31 269 people killed after Korean Airlines 747 shot down by USSR, 1983 +08/31 Mary Anne Nichols becomes Jack the Ripper's first victim, 1888 +08/31 Non-aggression pact signed by USSR and Afghanistan, 1926 +08/31 Federation of Malaya gains independence from Great Britain, 1957 +09/01 Bobby Fischer defeats Boris Spassky in World Chess Match, 1972 +09/01 Joshua A. Norton proclaims himself 'Emperor Norton I', 1859 +09/02 Great Britain adopts Gregorian Calendar, 1752 +09/02 Japan signs unconditional surrender on US battleship `Missouri', 1945 +09/03 Richard ``the Lionheart'' crowned king of England, 1189 +09/03 Anniversary of the Founding of the Republic in San Marino +09/05 US President Kennedy orders resumption of underground nuclear tests, 1961 +09/05 The first Continental Congress was convened in Philadelphia, 1774 +09/06 149 Pilgrims set forth from England aboard the Mayflower, 1620 +09/06 First Star Trek episode (The Man Trap) aired 1966 +09/06 US President McKinley shot, 1901 +09/06 Somhlolo in Swaziland +09/08 "Star Trek" debuts on NBC (1966) +09/08 Jack the Ripper kills again, Annie Chapman is second victim, 1888 +09/08 US President Ford pardons Richard M. Nixon, 1974 +09/09 California becomes the 31st state of the USA, 1850 +09/09 United Colonies is renamed the United States, 1776 +09/10 Mountain Meadows Massacre. Mormons kill Gentile wagon train, 1857 +09/11 CIA-sponsored terrorists overthrow Chilean government, murder President Allende, 1973 +09/11 Terrorists destroy World Trade Center in New York, 2001 +09/12 German paratroopers rescue Mussolini from captivity in Rome, 1943 +09/12 Germany annexes Sudetenland, 1938 +09/13 58 °C (136.4 °F) measured at el Azizia, Libya, 1922 +09/13 British defeat the French at the Plains of Abraham, just outside the walls of Quebec City, 1759 +09/13 Building of Hadrian's Wall begun, 122 +09/13 Chiang Kai-Shek becomes president of China, 1943 +09/14 Benjamin Franklin is sent to France as an American minister, 1778 +09/14 Salem, Massachusetts, is founded, 1629 +09/14 The US Selective Service Act establishes the first peacetime draft, 1940 +09/15 Soviet Premier Nikita Khrushchev begins his 13 day tour of the US, 1959 +09/15 The US Foreign Affairs Dept. becomes the US State Department, 1789 +09/16 The village of Shawmut, Massachusetts, becomes the city of Boston, 1630 +09/16 Malaya, Sabah, Sarawak and Singapore unite to become Malaysia, 1963 +09/17 Battle of Antietam, 1862 +09/18 Victory of Uprona in Burundi +09/19 New Zealand women get the right to vote, 1893 +09/20 Equal Rights Party nominates Belva Lockwood for US President, 1884 +09/20 First meeting of the American Association for the Advancement of + Science, 1848 +09/20 First meeting of the US National Research Council, 1916 +09/20 Magellan leaves Spain on the first Round the World passage, 1519 +09/20 The Roxy Theater opens in Hollywood, 1973 +09/22 US President Lincoln issues the Emancipation Proclamation, 1862 +09/22 Special prosecutor Leon Jeworski subpoenas US President Nixon, 1974 +09/22 The first Soviet atomic bomb explodes, 1949 +09/23 Philippine President Ferdinand Marcos declares martial law, 1972 +09/23 The New York Knickerbockers becomes the first US Baseball club, 1845 +09/23 US Vice President Nixon denies campaign fund fraud with his "Checkers" speech, 1952 +09/25 Sandra Day O'Connor becomes first woman on US Supreme Court, 1981 +09/27 The first passenger was hauled in a locomotive in England, 1825 +09/28 "Pilgrim's Progress" published, 1678 +09/28 A Greek soldier runs 26+ miles after the Persian defeat at Marathon, + 490BC +09/30 Red Jack kills 2, Elizabeth Stride (#3) and Catherine Eddowes (#4), + 1888 +09/30 The first tooth is extracted under anesthesia in Charleston, Mass, 1846 +09/30 The verdicts of the Nuremberg trials are announced, 1946 +10/01 NASA officially begins operations, 1958 +10/02 Thurgood Marshall sworn as the first black Supreme Court Justice, 1967 +10/04 Crimean war begins, 1853 +10/04 First space vehicle, Sputnik I, launched, 1957 +10/06 Antioch College is the first public school to admit men and women, 1853 +10/06 Egyptian President Anwar es-Sadat is assassinated in Cairo, 1981 +10/06 Israel is attacked by the alliance of Egypt and Syria, 1973 +10/07 Foundation of the German Democratic Republic (GDR or DDR), 1949 +10/07 Georgia Tech. beats Cumberland Univ. 222-0, 1916 +10/07 Maryland Governor Marvin Mandel sent to prison on fraud charges, 1977 +10/07 Mother Teresa of Calcutta awarded the Nobel Peace Prize, 1979 +10/07 Police stop Wilbur Mills car, Fanne Fox jumps into water, 1974 +10/08 Great Chicago Fire, 1871 +10/09 First two-way telephone conversation, 1876 +10/10 Beginning of the Wars for Independence in Cuba +10/10 Foundation of the Workers Party in North Korea +10/10 Mercury at Superior Conjunction with Sun. Moves into night sky. (1984) +10/10 Spiro T. Agnew resigns as Vice-President due to income tax fraud, 1973 +10/11 "Saturday Night Live" premiers on NBC-TV, 1975 +10/11 The Gang of Four are arrested in Peking, 1976 +10/11 The first steam powered ferry ran between New York and Hoboken, 1811 +10/11 The second Vatican Ecumenical Council opens in Rome, 1962 +10/11 First broadcast of Saturday Night Live, 1975 +10/12 Bahama Natives discover Columbus of Europe lost on their shores, 1492 +10/12 Khrushchev pounds his desk with shoe during a speech to the UN, 1960 +10/12 Man O'War's last race, 1920 +10/12 Native Americans discover Columbus of Europe lost on their shores, 1492 +10/13 Italy declares war on Germany, 1943 +10/13 US Navy born, 1775, authorized by the Second Continental Congress +10/14 Battle of Hastings won by William the Conqueror and the Normans, 1066 +10/14 Chuck Yeager breaks sound barrier, 1947 +10/15 First draft card burned, 1965 +10/18 Boston Shoemakers form first US labor org., 1648 +10/18 Soviets announce their probe took photos of the Moon's far side, 1959 +10/19 Mao Tse-tung establishes the People's Republic of China, 1949 +10/19 Napoleon's beaten army begins the long retreat from Moscow, 1812 +10/20 "Saturday Night Massacre", 1973 +10/20 OPEC embargo, 1973 +10/21 Edison makes the first practical incandescent lamp, 1879 +10/21 Guggenheim Museum opens, 1959 +10/23 Battle of Leyte Gulf begins, 1944 +10/23 Day of the 1956 revolution in Hungary +10/23 Earth created at 6:30 AM, 4004BC. +10/23 Swallows leave Capistrano +10/25 The UN removes Taiwan and admits the People's Republic of China, 1971 +10/26 UN's World Health Organization declares smallpox eradicated, 1978 +10/27 New York's Boss Tweed is arrested on fraud charges, 1871 +10/27 The first New York Subway is opened, 1904 +10/28 Columbus discovers Cuba, 1492 +10/28 Constantine's army defeats forces of Maxentius at Mulvian Bridge, 312 +10/28 Harvard was founded in Massachusetts, 1636 +10/28 Statue of Liberty was dedicated on Bedloe's Island, 1886 +10/29 Stock Market Crash, 1929 +10/30 Orson Welles' "War of the Worlds" broadcast, 1938 +10/31 Luther nails 95 Theses to door of Castle Church, Wittenberg, 1517 +11/01 Austria-Hungary become two separate nations, 1918 +11/01 Puerto Rican nationalists try to kill Truman at the Blair House, 1950 +11/02 Luftwaffe completes 57 consecutive nights of bombing of London, 1940 +11/02 Two Frenchmen make the first free hot air balloon flight, 1783 +11/03 Beef rises to 3 cents a pound, IL, 1837 +11/03 Linus Pauling wins Nobel Chemistry Prize, 1954 +11/03 Sputnik II launched, 1957, bearing space dog Laika +11/04 Iranian militants seize US embassy personnel in Teheran, 1979 +11/04 Soviet forces crush the anti-communist revolt in Hungary, 1956 +11/05 Guy Fawkes' Plot, 1605 +11/07 Abolitionist newspaperman Elijah P. Lovejoy murdered by mob, 1837 +11/07 Lewis and Clark Expedition in sight of the Pacific Ocean, 1805 +11/09 Blackout of New York, New England, and Eastern Canada, 1965 +11/09 Giant panda discovered (?!), China, 1927 +11/09 Jack the Ripper kills fifth and final victim, Jane Kelly, 1888 +11/09 Margaret Sanger forms American Birth Control League, 1921 +11/09 Roosevelt establishes the Civil Works Administration, 1933 +11/10 41 Women arrested in suffragette demonstrations near White House, 1917 +11/10 Cpt. Wirz, commandant of Andersonville Prison hanged, 1865 +11/10 Henry Stanley asks David Livingstone, "Dr. Livingstone, I presume?", 1871 +11/11 Washington becomes the 42nd state, 1889 +11/12 Dr. Sun Yat-sen's Birthday in Taiwan +11/12 USA first exports oil to Europe, 1861 +11/14 Quarter Pounder price raised from $0.53 to $0.55 in violation of Nixon + price controls (but okayed by Price Commission after formal request + from McDonald's), 1971 +11/15 Niagara Falls power plant startup, 1896 +11/16 Opening of the Suez Canal, 1869 +11/16 Albert Hofmann synthesizes LSD in Switzerland, 1938 +11/17 46,000 meteoroids fall over AZ in 20 minutes, 1966 +11/17 Richard Nixon says "I am not a crook.", 1973 +11/18 First hydrogen bomb blasts Enewetok, 1952 +11/18 Local standard time zones established for US, 1883 +11/19 Gettysburg Address delivered, 1863 +11/21 Announcement of 18 1/2 minute gap on Watergate tape, 1973 +11/22 Kennedy shot in Dallas, Texas by Lee Harvey Oswald, 1963 +11/23 First broadcast of Dr. Who (longest running TV series), 1963 +11/24 Lee Harvey Oswald killed by Jack Ruby, 1963 +11/25 Alfred Nobel invents dynamite, 1867 +11/27 Alfred Nobel establishes Nobel Prize, 1895 +11/27 Friction match invented, England, 1826 +11/27 Hoosac Railroad Tunnel completed, 1873, in NW Massachusetts +11/29 King Tut's tomb opened, 1922 +12/01 First national corn-husking championship, Alleman IA, 1924 +12/01 Martin Luther King Jr., leads black boycott of Montgomery buses, 1955 +12/01 Rosa Parks refuses to move to back of the bus (Montgomery, AL), 1953 +12/03 First neon light display, Paris, 1910 +12/03 First successful human heart transplant led by Dr. Barnard, 1967 +12/03 The Montreux Casino burns down during a Frank Zappa concert, 1971 +12/04 Washington takes leave of his officers at Fraunce's Tavern, NYC, 1783 +12/05 End of Prohibition, 1933 (at least the alcohol part) +12/05 Phi Beta Kappa founded, 1776 +12/05 The Eighteenth Amendment repealed, ending Prohibition, 1933 +12/07 Japan bombs Pearl Harbor, 1941 +12/08 Japan enters Second World War with invasion of Pantai Sabak, Kelantan, 1941 +12/09 Ball-bearing roller skates patented, 1884 +12/10 Metric system established in France, 1799 +12/10 Nobel Peace Prize awarded each year +12/12 First wireless message sent across Atlantic by Marconi, 1901 +12/13 Apollo 17 leaves the moon, with "last" men to walk on moon aboard, 1972 +12/13 Dartmouth College chartered, 1769 +12/13 Geminid meteor shower (look south) +12/15 Argo Merchant oil spill, 1976 +12/15 Bill of Rights adopted, 1791 +12/15 James Naismith invents basketball, Canada, 1891 +12/15 Sitting Bull shot in head while submitting to arrest, 1890 +12/20 US buys ~1,000,000 sq. miles of Louisiana for ~$20/sq.mi. +12/21 Phileas Fogg completes his trip around the world in less than 80 days +12/21 Women gain the right to vote in South Australia, 1894 +12/21 Women gain the right to hold political office in South Australia, 1894 +12/24 KKK formed in Pulaski, Tenn, 1865 +12/26 DPMA founded, 1951 +12/27 APT report published, 1956 +12/27 Ether first used as anesthetic in childbirth, 1845 +12/28 Comet Kohoutek at perihelion, 1973 +12/28 Proclamation of the Province of South Australia, 1836 +12/29 Battle of Wounded knee, 1890 +12/30 First Los Angeles freeway dedicated, 1940 +12/31 St. Sylvester in Switzerland +12/31 Winterland closes its doors, 1978 + +#endif /* !_calendar_history_ */ diff --git a/usr.bin/calendar/calendars/calendar.holiday b/usr.bin/calendar/calendars/calendar.holiday new file mode 100644 index 000000000000..a5e5dda4dfd4 --- /dev/null +++ b/usr.bin/calendar/calendars/calendar.holiday @@ -0,0 +1,563 @@ +/* + * Holiday + * + * $FreeBSD$ + */ + +#ifndef _calendar_holiday_ +#define _calendar_holiday_ + +01/01 Beginning of the Year in Japan +01/01 Independence Day in Haiti and Sudan +01/01 Universal Fraternity Day in Mozambique +01/02 Ancestry Day in Haiti +01/02 St. Berchtold's Day in Switzerland +01/03 New Year's Holiday in Scotland +01/03 Revolution Day in Upper Volta +01/04 Independence Day in Burma +01/04 Martyrs Day in Zaire +01/06 Children's Day in Uruguay +01/06 Three Kings' Day in Puerto Rico +01/07 Christmas in Ethiopia +01/07 Pioneer's Day in Liberia +01/09 Day of the Martyrs in Panama +01/11 Armed Forces Day in Liberia +01/12 Zanzibar Revolution Day in Tanzania +01/13 National Liberation Day in Togo +01/15 Arbor Day in Jordan +01/16 Martyrs Day in Benin +01/18 Revolution Day in Tunisia +01/19 Confederate Heroes Day in Texas +01/19 Ethiopian Epiphany in Ethiopia +01/19 Nameday of Archbishop Makarios in Cyprus +01/20 Army Day in Mali +01/20 National Heroes Day in Guinea-Bissau +01/21 Our Lady of Altagracia in Dominican Republic +01/23 Feast of St. Ildefonsus +01/23 US National Handwriting Day +01/24 Economic Liberation Day in Togo +01/26 Republic Day in India +01/MonSecond Adults Day in Japan +01/MonThird Lee-Jackson Day in Virginia (3rd Monday) +01/MonThird Robert E. Lee's Birthday in Alabama & Mississippi (3rd Monday) +01/MonThird Martin Luther King Day in New York (3rd Monday) +02/01 Chinese New Year Holiday (3 days) in Taiwan +02/02 Candlemas +02/04 Independence Commemoration Day in Sri Lanka +02/05 Constitution Day in Mexico +02/06 New Zealand Day +02/07 Independence Day in Grenada +02/09 St. Maron's Day in Lebanon +02/10 Feast of St. Paul's Shipwreck, AD 60 +02/11 National Foundation Day in Japan +02/12 Pyidaungsa Day in Burma +02/16 Makha Bucha Day in Thailand +02/18 Democracy Day in Nepal +02/18 Independence Day in The Gambia +02/23 Republic Day in Guyana +02/24 Gregorian Calendar Day +02/25 National Day in Kuwait +02/27 Independence Day in Dominican Republic +03/01 Samil Independence Movement Day in South Korea +03/01 St. David's Day - Patron Saint of Wales +03/02 Peasants Day in Burma +03/02 Texas Independence day +03/02 Victory of Adowa in Ethiopia +03/03 Throne Day in Morocco +03/03 Independence day (Treaty of San Stefano) in Bulgaria +03/04 Vermont Admission Day (admitted as 14th US state in 1791) +03/05 Independence Day in Equatorial Guinea +03/06 Lantern Day, Bejing +03/08 First Annual International Women's Day, 1909 +03/08 International Women's Day in former USSR +03/08 Syrian National Day in Libyan Arab Republic +03/08 Women's Day in Guinea-Bissau, Taiwan and Yemen Democratic Republic +03/08 Youth Day in Zambia +03/09 Decoration Day in Liberia +03/09 Falgun Purnima Day in Nepal +03/10 Labor Day in South Korea +03/11 Johnny Appleseed Day; anniversary of the death of John Chapman +03/12 Commonwealth Day in Swaziland +03/12 Independence Day in Mauritius +03/12 Moshoeshoe's Birthday in Lesotho +03/12 Renovation Day in Gabon +03/13 National Day in Grenada +03/16 Black Press Day; first US Black newspaper founded in 1827 +03/17 Evacuation Day in Suffolk County, Massachusetts +03/17 St. Patrick's Day - one of the Patron Saints of Ireland +03/19 St. Joseph's Day, observed in Colombia, Costa Rica, Holy See, + Liechtenstein, San Marino, Spain, Venezuela +03/19 Tree Planting Day in Lestho +03/20 Independence Day in Tunisia +03/20 Youth Day in Oklahoma +03/20* Vernal Equinox in Japan +03/21 Afghan New Year in Afghanistan +03/21 Juarez' Birthday in Mexico +03/21* Vernal Equinox in Japan +03/22 Abolition Day in Puerto Rico +03/23 Pakistan Day in Pakistan +03/25 Greek Independence Day in Cyprus +03/25 Lady Day (a.k.a. the Feast of the Annunciation) +03/25 Maryland Day in Maryland +03/25 National Holiday in Greece +03/26 Independence Day in Bangladesh +03/26 Prince Jonah Kuhio Kalanianaole Day in Hawaii +03/27 Armed Forces Day in Burma +03/29 Death of President Barthelemy Boganda in Central African Republic +03/29 Memorial Day in Madagascar +03/31 National Day in Malta +03/MonLast Seward's Day in Alaska (last Monday) +04/01 Youth Day in Benin +04/02 Malvinas Day in Argentina +04/02 Pascua Florida Day in Florida +04/04 Ching Ming Festival in Hong Kong +04/04 Liberation Day in Hungary +04/04 National Day in Senegal +04/05 Arbor Day in South Korea +04/05 Tomb Sweeping Day in Taiwan +04/06 Chakri Memorial Day in Thailand +04/06 Victory Day in Ethiopia +04/08 Fast and Prayer Day in Liberia +04/09 Martyrs Day in Tunisia +04/11 National Heroes Day in Costa Rica +04/13 National Day in Chad +04/13 Songkron Day in Thailand +04/14 Day of the Americas in Honduras +04/15 Bengali New Year in Bangladesh +04/16 De Diego's Birthday celebrated in Puerto Rico +04/16 Holy Week (5 days) in Venezuela +04/16 Tourist Week (5 days) in Uruguay +04/17 Burmese New Year in Burma +04/18 Independence Day in Chile and Zimbabwe +04/19 Declaration of Independence in Venezuela +04/19 Republic Day in Sierra Leone +04/21 San Jacinto Day in Texas +04/21 Tiradentes in Brazil +04/22 Arbor Day in Nebraska & Delaware +04/22 Oklahoma Day in Oklahoma +04/23 St. George's Day - Patron Saint of England +04/24 Victory Day in Togo +04/25 Anniversary of the Revolution in Portugal +04/25 Anzac Day, observed in Australia, New Zealand, Tonga and Western Samoa +04/25 Liberation Day in Italy +04/25 National Flag Day in Swaziland +04/26 Confederate Memorial Day in Florida & Georgia +04/26 Union Day in Tanzania +04/27 Independence Day in Togo +04/27 King's Birthday in the Netherlands, the Netherlands Antilles +04/29 Showa Day in Japan +04/30 The Workers Day in Uruguay +04/MonLast Arbor Day in Wyoming (last Monday) +04/MonLast Confederate Memorial Day in Alabama & Mississippi (last Monday) +04/MonThird Patriot's Day in Maine & Massachusetts (3rd Monday) +05/01 Labor Day in many places in the USA +05/01 May Day in many places +05/01 US Law Day (decl. by Eisenhower) +05/02 King's Birthday in Lesotho +05/03 Constitution Memorial Day in Japan +05/04 Greenery Day in Japan +05/04 Rhode Island Independence Day +05/05 Battle of Puebla in Mexico +05/05 Children's Day in Japan and South Korea +05/05 Coronation Day in Thailand +05/05 Liberation Day in the Netherlands +05/06 Bataan Day in Philippines +05/06* Bank Holiday in UK +05/07 May Day in United Kingdom +05/08 Buddha's Birthday in South Korea +05/08 Elections for the National Assembly in Philippines +05/08 Truman Day in Missouri +05/09 VE day, end of Second World War, celebrated in many countries +05/10 Confederate Memorial Day in South Carolina +05/10 Mothers Day in Guatemala +05/11 Minnesota Day in Minnesota +05/14 Anniversary of the Founding of Guinean Democratic Party in Guinea +05/14 Buddhist Holiday (Waisak 2528) in Indonesia +05/14 Independence Day (2 days) in Paraguay +05/14 Unification Day in Liberia +05/15 Kamuzu Day in Malawi +05/15 Vesak Day, observed in Singapore and Malaysia +05/15 Visakha Bucha Day in Thailand +05/16 Discovery Day in Cayman Islands +05/17 Constitution Day in Nauru and Norway +05/18 Flag Day in Haiti +05/18 Prayer Day in Denmark +05/19 Youth and Sports Day in Turkey +05/20 Mecklenburg Independence Day in North Carolina +05/20 National Day in Cameroon +05/20 Victoria Day in Canada +05/22 National Heroes Day in Sri Lanka +05/23 Commonwealth Day in Jamaica and Belize +05/23 National Labor Day in Jamaica +05/24 Bermuda Day in Bermuda +05/24 Day of Slav Letters in Bulgaria +05/25 African Freedom Day in Zimbabwe +05/25 African Liberation Day in Chad, Mauritania and Zambia +05/25 Anniversary of the Revolution of 1810 in Argentina +05/25 Independence Day in Jordan +05/25 Memorial Day in New Mexico & Puerto Rico +05/25 Revolution in the Sudan in Libyan Arab Republic +05/27 Afghanistan attains sovereignty, 1921 +05/27* Bank Holiday in UK +05/28 Mothers Day in Central African Republic +05/31 Pya Martyrs Day in Togo +05/MonThird Memorial Day in Michigan (3rd Monday) +06/01 Independence Days (3 days) in Western Samoa +06/01 Madaraka Day in Kenya +06/01 Victory Day in Tunisia +06/02 Corpus Christi in Paraguay +06/03 Confederate Memorial Day in Kentucky & Louisiana +06/03 Labor Day in Bahamas +06/03* Bank Holiday in Rep. of Ireland +06/04 Emancipation Day in Tonga +06/04 Queen's Birthday in New Zealand +06/05 Constitution Day in Denmark +06/05 Liberation Day in Seychelles +06/06 His Majesty, Yang Di-Pertuan Agong's Birthday in Malaysia +06/06 Memorial Day in South Korea +06/09 Senior Citizen's Day in Oklahoma +06/10 Camoes Day in Portugal +06/11 King Kamehameha I Day in Hawaii +06/11 Queen's Birthday +06/12 Independence Day in Philippines +06/12 Peace with Bolivia in Paraguay +06/13 Corrective Movement in Yemen Arab Republic +06/14 Flag Day, USA +06/16 Bloomsday - Anniversary of Dublin events, 1904, in "Ulysses" +06/17 Bunker Hill Day in Suffolk County, Massachusetts +06/17 Independence Day in Iceland +06/18 Evacuation Day in Egypt +06/18 Queen's Birthday in Fiji +06/19 Artigas Birthday in Uruguay +06/19 Emancipation Day in Texas +06/19 Labor Day in Trinidad and Tobago +06/19 Revolution Day in Algeria +06/20 Flag Day in Argentina +06/20 West Virginia Day in West Virginia +06/22 Corrective Movement in Yemen Democratic Republic +06/22 Midsummer Eve in Finland, Sweden +06/22 National Sovereignty Day in Haiti +06/23 National Holiday in Luxembourg +06/24 Battle of Carabobob in Venezuela +06/24 Fisherman's Day in Madagascar, Mozambique and Somalia +06/24 Kings Day in Spain +06/24 Peasants Day in Peru +06/24 St. Jean-Baptiste Day in Quebec +06/28 Mothers Day in Central African Republic +06/29 Independence Day in Seychelles +06/30 Day of the Army in Guatemala +06/MonFirst Jefferson Davis's Birthday in Alabama & Mississippi (1st Monday) +06/MonFirst Jefferson Davis's Birthday in Florida, Georgia, & S. Carolina +07/01 Canada Day +07/01 Freedom Day in Suriname +07/01 Independence Day in Burundi +07/01 National Day in Rwanda +07/01 Republic Day in Ghana +07/01 Union of the Somalia Republic in Somalia +07/02 National Day in Kiribati +07/04 Caribbean Day in Guyana +07/04 Constitution Day in Cayman Islands +07/04 Family Day in Lesotho +07/04 Heroes Day in Zambia +07/04 Kadooment Day in Barbados +07/04 Philippine-American Friendship Day in the Philippines +07/04 Warriors Day (2 days) in Yugoslavia +07/05 Day of Peace and Unity in Rwanda +07/05 Independence Day in Algeria and Venezuela +07/07 Anniversary of the P.U.N. in Equatorial Guinea +07/07 National Day in Malawi +07/07 Saba Saba Day in Tanzania +07/09 Independence Day in Argentina +07/10 Independence Day in Bahamas +07/11 National Holiday in the Mongolian People's Republic +07/12 Battle of Boyne celebrated in Northern Ireland +07/13 Buddhist Lent in Thailand +07/14 Anniversary of the Revolution in Iraq +07/14 French National Festival +07/14 National Holiday in Monaco +07/15 St. Swithin's Day +07/16 Presidents Day in Botswana +07/17 Constitution Day in South Korea +07/17 July Revolution in Iraq +07/17 Munoz Rivera's Birthday (celebrated in Puerto Rico) +07/17 Public Holiday in Botswana +07/18 Constitution Day in Uruguay +07/18 Liberation Day in Nicaragua +07/19 Martyrs Day in Burma +07/20 Independence Day in Colombia +07/21 National Holiday in Belgium +07/22 King's Birthday in Swaziland +07/22 National Day in Poland +07/23 Anniversary of the Revolution in Egypt +07/23 Egyptian National Day in Syrian Arab Republic +07/23 Remembrance Day in Papua New Guinea +07/24 Pioneer Day in Utah +07/24 Simon Bolivar's Day in Ecuador and Venezuela +07/25 Constitution Day in Puerto Rico +07/25 National Rebellion Day (3 days) in Cuba +07/25 Republic Day in Tunisia +07/25 St. James, Patron Saint in Spain +07/26 Independence Day in Liberia +07/26 National Day in Maldives +07/27 Barbosa's Birthday (celebrated in Puerto Rico) +07/28 Independence Days (2 days) in Peru +07/29 Olsok Eve in Norway to commemorate Norway's Viking King St. Olav +07/29 Rain Day in Waynesburg, PA +07/31 Revolution Day in Congo +07/MonThird Day of Sea in Japan +08/01 Discovery Day in Trinidad and Tobago +08/01 Emancipation Day in Granada +08/01 Founding of Asuncion in Paraguay +08/01 Freedom Day in Guyana +08/01 National Day in Switzerland +08/01 National Holidays (5 days) in El Salvador +08/01 Parent's Day in Zaire +08/02 Our Lady of Los Angeles in Costa Rica +08/03 Independence Day in Jamaica and Niger +08/03 Massacre of the Pidjiguiti in Guinea-Bissau +08/03 Memorial Day of Archbishop Makarios in Cyprus +08/04 Freedom Day in Guyana +08/05* Bank Holiday in Scotland and Northern Ireland +08/06 Bank Holiday in British Columbia, Fiji, Iceland, Ireland, Ontario +08/06 Emancipation Day in Bahamas +08/06 Independence Day in Bolivia +08/07 Battle of Boyaca in Colombia +08/09 National Day in Singapore +08/10 Independence Day in Ecuador +08/11 Heroes Day (2 days) in Zimbabwe +08/11 Independence Day in Chad +08/11 King Hussein's Accession to the Throne in Jordan +08/12 Queen's Birthday in Thailand +08/13 Proclamation of Independence in Central African Republic +08/13 Women's Day in Tunisia +08/14 Independence Day in Pakistan +08/14 Waddi Dhahab in Morocco +08/15 VJ Day, 1945 +08/15 Founding of Ascuncion in Paraguay +08/15 Independence Day in India +08/15 Liberation Day in South Korea +08/15 National Day in Congo +08/15 Santa Maria in Malta +08/16 Bennington Battle Day in Vermont +08/16 Independence Days (3 days) in Gabon +08/16 Restoration Day in Dominican Republic +08/17 Anniversary of the Death of General San Martin in Argentina +08/17 Independence Day in Indonesia +08/19 Independence Day in Afghanistan +08/20 Constitution Day in Hungary +08/24 National Flag Day in Liberia +08/25 Constitution Day in Paraguay +08/25 Independence Day in Uruguay +08/26 Susan B. Anthony Day in Massachusetts +08/26* Bank Holiday in England and Wales +08/27 Liberation Day in Hong Kong +08/28 Heroes Day in Philippines +08/30 Huey P. Long Day in Louisiana +08/30 Victory Day in Turkey +08/31 Independence Day (Merdeka) in Malaysia +08/31 Independence Day in Trinidad and Tobago +08/31 Pashtunistan Day in Afghanistan +08/FriThird Admission Day in Hawaii, 1959 (3rd Friday) +09/01 Army Day in Chile +09/03 Independence Day in Qatar +09/03 Memorial Day in Tunisia +09/06 Defense of Pakistan Day in Pakistan +09/06 Unification of Bulgaria +09/07 Independence Day in Brazil +09/09 Admission Day in California +09/09 National Day in North Korea +09/10 Korean Thanksgiving Day (Chusuk) in South Korea +09/10 Moon Festival in Taiwan +09/10 National Day in Belize +09/11 Anniversary of military coup in Chile +09/11 Ethiopian New Year in Ethiopia +09/11 National Holiday in Chile +09/12 Amilcar Cabral's Birthday in Guinea-Bissau +09/12 Defender's Day in Maryland +09/12 Revolution Day in Ethiopia +09/13 Barry Day commemorates the death of Commodore John Barry, USA +09/14 Battle of San Jacinto in Nicaragua +09/15 Foundation of Panama in Panama +09/16 Cherokee Strip Day in Oklahoma +09/16 Independence Days in Mexico and Papua New Guinea +09/17 National Heroes Day in Angola +09/18 Independence Day in Chile and Zimbabwe +09/19 Army Day in Chile +09/21 Independence Day in Belize +09/22 Independence Day in Mali +09/22 National Sovereignty Day in Haiti +09/22* Autumnal Equinox in Japan +09/23 Grito de Lares in Puerto Rico +09/23* Autumnal Equinox in Japan +09/24 Anniversary of the Third Republic in Ghana +09/24 Independence Day in Guinea-Bissau +09/24 National Day in Saudi Arabia +09/24 Our Lady of Mercedes in Dominican Republic +09/24 Republic Day in Trinidad and Tobago +09/25 Army Day in Mozambique +09/25 Referendum Day in Rwanda +09/26 National Day in Maldives +09/26 Revolution Anniversary Day in Yemen +09/27 Feast of Finding the True Cross in Ethiopia +09/28 Confucius' Day in Taiwan +09/29 Michaelmas +09/29 Battle of Boqueron in Paraguay +09/30 Botswana Day in Botswana +09/MonThird Respect for the Aged Day in Japan +10/01 Armed Forces Day in South Korea +10/01 Independence Day in Nigeria +10/01 National Liberation Day (2 days) in China +10/01 Public Holiday in Botswana +10/02 Anniversary of Guinean Independence in Guinea +10/03 Chung Yeung Festival in Hong Kong +10/03 Francisco Morazan's Birthday in Honduras +10/03 German Reunification Day +10/03 National Foundation Day in South Korea +10/03 U.N. Day in Barbados +10/04 Independence Day in Lesotho +10/05 Anniversary of Proclamation of the Republic in Portugal +10/06 National Sports Day in Lesotho +10/07 National Heroes Day in Jamaica +10/08 Battle of Agamos in Peru +10/08 Constitution Day in former USSR +10/08 Thanksgiving Day in Canada +10/08* Fiji Day +10/09 Independence Day in Uganda +10/09 Independence of Guayaquil in Ecuador +10/09 Korean Alphabet Day in South Korea +10/09 Leif Erikson Day commemorates the discovery of North America in AD 1000 +10/09 Republic Day in Khmer Republic +10/10 National Day in Taiwan +10/10 Oklahoma Historical Day in Oklahoma +10/11 Day of the Revolution in Panama +10/12 Day of the Race in Argentina +10/12 Discovery Day in Bahamas +10/12 National Day in Equatorial Guinea and Spain +10/12 Our Lady Aparecida Day in Brazil +10/12 Pan American Day in Belize +10/14 National Day in Yemen Arab Republic +10/14 Young People's Day in Zaire +10/14* Thanksgiving Day in Canada +10/15 Evacuation Day in Tunisia +10/16 National Boss Day, USA +10/17 Dessaline's Death Anniversary in Haiti +10/17 Heroes Day in Jamaica +10/17 Mother's Day in Malawi +10/20 Anniversary of the 1944 Revolution in Guatemala +10/20 Kenyatta Day in Kenya +10/21 Armed Forces Day in Honduras +10/21 Revolution Days (2 days) in Somalia +10/23 King Chulalongkorn Day in Thailand +10/24 Independence Day in Zambia +10/24 United Nations Day +10/25 Taiwan Restoration Day in Taiwan +10/25 St. Crispin's day, patron saint of shoemakers +10/26 Agam Day in Nauru +10/26 Armed Forces Day in Benin and Rwanda +10/26 National Day in Austria +10/28 National Holiday in Greece +10/28 OHI Day in Cyprus +10/28* Bank Holiday in Republic of Ireland +10/29 Republic Day in Turkey +10/31 All Hallows Eve ("Halloween") +10/31 Nevada Day in Nevada +10/MonFourth Labour Day in New Zealand +10/MonSecond Health Sports Day in Japan +11/01 All Saints Day +11/01 Samhain; Beginning of the Celtic year and most important holiday. +11/02 All Souls Day +11/02 Memorial Day in Ecuador +11/03 Culture Day in Japan +11/03 Independence from Columbia in Panama +11/03 Independence of Cuenca in Ecuador +11/03 Thanksgiving Day in Liberia +11/04 Flag Day in Panama +11/04 Will Rogers Day, USA +11/06 Green March Day in Morocco +11/07 October Revolution Day in Hungary +11/08 Her Majesty, the Queen's Birthday in Nepal +11/10 King's Birthday in Bhutan +11/11 Angola gains independence from Portugal, 1975 +11/11 Independence Day in Angola +11/11 Independence of Cartagena in Colombia +11/11 Remembrance Day in Canada +11/11 Republic Day in Maldives +11/14 King Hussein's Birthday in Jordan +11/15 Dynasty Day in Belgium +11/15 Proclamation of the Republic in Brazil +11/15 Thatlouang Festival in Laos +11/16 Oklahoma Heritage Week in Oklahoma +11/17 Army Day in Zaire +11/17 Corrective Movement in Syrian Arab Republic +11/18 Battle of Viertieres in Haiti +11/18 Independence Day in Morocco +11/18 National Days (4 days) in Oman +11/19 Anniversary of the 1968 Coup by the Army in Mali +11/19 Discovery Day in Puerto Rico +11/19 Feast Day of S.A.S. Prince Rainier in Monaco +11/19 Garifuna Settlement in Belize +11/20 Revolution Day in Mexico +11/22 Anniversary of Portuguese Aggression in Guinea +11/22 Independence Day in Lebanon +11/23 Labor Thanksgiving Day in Japan +11/24 Anniversary of the New Regime in Zaire +11/25 Independence Day in Suriname +11/28 Independence Day in Albania and Mauritania +11/28 Independence from Spain in Panama +11/28 Proclamation of the Republic in Chad +11/29 Day of the Republic (2 days) in Yugoslavia +11/29 Goodwill Day in Liberia +11/29 Liberation Day in Albania +11/29 National Day in Burma +11/30 Independence Day in Barbados and Yemen Democratic Republic +11/30 National Day in Benin +11/30 National Heroes Day in Philippines +11/30 St. Andrew's Day - Patron Saint of Scotland +11/Wed+3 Day of Prayer and Repentance (Buss- und Bettag) in Federal Republic of Germany +12/01 Anniversary of the Restoration of Independence in Portugal +12/01 Union Day in Romania +12/01 Independence Day in Central African Republic +12/01 World AIDS Day +12/02 National Holiday in United Arab Emirates +12/03 National Holiday in Laos +12/05 King's Birthday in Thailand +12/06 Independence Day in Finland +12/07 Delaware Day in Delaware +12/07 Independence Day in Ivory Coast +12/07 Independence Day in Panama +12/08 Blessing of the Water in Uruguay +12/08 Mother's Day in Panama +12/08 Our Lady of the Cacupe in Paraguay +12/09 Independence Day in Tanzania +12/10 Foundation of Worker's Party in Angola +12/10 Human Rights Day +12/10 Thai Constitution Day in Thailand +12/10 Wyoming Day in Wyoming +12/11 Independence Day in Upper Volta +12/12 Independence Day in Kenya +12/13 Republic Day in Malta +12/15 Statue Day in the Netherlands Antilles +12/16 Constitution Day in Nepal +12/16 National Day in Bahrain +12/16 Victory Day in Bangladesh +12/17 National Day in Bhutan +12/18 Republic Day in Niger +12/23 Emperor's Birthday in Japan +12/23 Victory Day in Egypt +12/25 Birthday of Quaid-i-Azam in Pakistan +12/25 Children's Day in Congo +12/26 Boxing Day +12/26 Feast of Our Theotokos in Greece +12/26 St. Stephen's Day +12/26 Bank Holiday in Canada, Rep. of Ireland, and UK +12/27 Bank Holiday in Cayman Islands +12/27 Constitution Day in North Korea +12/27 Public Holiday in Lesotho, Zimbabwe +12/29 Civic Holidays (3 days) in Costa Rica +12/29 His Majesty, the King's Birthday in Nepal +12/30 Anniversary of the Democratic Republic of Madagascar in Madagascar +12/31 Bank Holiday in El Salvador, Honduras, Pakistan +12/31 Feed Yourself Day in Benin +12/31 Proclamation of the Republic in Congo + +#endif /* !_calendar_holiday_ */ diff --git a/usr.bin/calendar/calendars/calendar.hungarian b/usr.bin/calendar/calendars/calendar.hungarian new file mode 100644 index 000000000000..1b29dfaf2f46 --- /dev/null +++ b/usr.bin/calendar/calendars/calendar.hungarian @@ -0,0 +1,12 @@ +/* + * Hungarian calendar file(s) + * + * $FreeBSD$ + */ + +#ifndef _calendar_hungarian_ +#define _calendar_hungarian_ + +#include + +#endif /* !_calendar_hungarian_ */ diff --git a/usr.bin/calendar/calendars/calendar.judaic b/usr.bin/calendar/calendars/calendar.judaic new file mode 100644 index 000000000000..9b1b7bb0d413 --- /dev/null +++ b/usr.bin/calendar/calendars/calendar.judaic @@ -0,0 +1,824 @@ +/* + * Judaic Calendar. + * + * $FreeBSD$ + * + */ + +#ifndef _calendar_judaic_ +#define _calendar_judaic_ + +/* + * The calendar below has been obtained from the port deskutils/hebcal + * for the year of 2018 to 2027 and for the city of New York. + */ + + +2018/1/17* Rosh Chodesh Sh'vat +2018/1/31* Tu BiShvat +2018/2/10* Shabbat Shekalim +2018/2/15* Rosh Chodesh Adar +2018/2/16* Rosh Chodesh Adar +2018/2/24* Shabbat Zachor +2018/2/28* Ta'anit Esther +2018/2/28* Erev Purim +2018/3/1* Purim +2018/3/2* Shushan Purim +2018/3/10* Shabbat Parah +2018/3/17* Rosh Chodesh Nisan +2018/3/17* Shabbat HaChodesh +2018/3/24* Shabbat HaGadol +2018/3/30* Ta'anit Bechorot +2018/3/30* Erev Pesach +2018/3/31* Pesach I +2018/4/1* Pesach II +2018/4/2* Pesach III (CH''M) +2018/4/3* Pesach IV (CH''M) +2018/4/4* Pesach V (CH''M) +2018/4/5* Pesach VI (CH''M) +2018/4/6* Pesach VII +2018/4/7* Pesach VIII +2018/4/12* Yom HaShoah +2018/4/15* Rosh Chodesh Iyyar +2018/4/16* Rosh Chodesh Iyyar +2018/4/18* Yom HaZikaron +2018/4/19* Yom HaAtzma'ut +2018/4/29* Pesach Sheni +2018/5/3* Lag BaOmer +2018/5/13* Yom Yerushalayim +2018/5/15* Rosh Chodesh Sivan +2018/5/19* Erev Shavuot +2018/5/20* Shavuot I +2018/5/21* Shavuot II +2018/6/13* Rosh Chodesh Tamuz +2018/6/14* Rosh Chodesh Tamuz +2018/7/1* Tzom Tammuz +2018/7/13* Rosh Chodesh Av +2018/7/21* Shabbat Chazon +2018/7/21* Erev Tish'a B'Av +2018/7/22* Tish'a B'Av +2018/7/27* Tu B'Av +2018/7/28* Shabbat Nachamu +2018/8/11* Rosh Chodesh Elul +2018/8/12* Rosh Chodesh Elul +2018/9/1* Leil Selichot +2018/9/9* Erev Rosh Hashana +2018/9/10* Rosh Hashana 5779 +2018/9/11* Rosh Hashana II +2018/9/12* Tzom Gedaliah +2018/9/15* Shabbat Shuva +2018/9/18* Erev Yom Kippur +2018/9/19* Yom Kippur +2018/9/23* Erev Sukkot +2018/9/24* Sukkot I +2018/9/25* Sukkot II +2018/9/26* Sukkot III (CH''M) +2018/9/27* Sukkot IV (CH''M) +2018/9/28* Sukkot V (CH''M) +2018/9/29* Sukkot VI (CH''M) +2018/9/30* Sukkot VII (Hoshana Raba) +2018/10/1* Shmini Atzeret +2018/10/2* Simchat Torah +2018/10/9* Rosh Chodesh Cheshvan +2018/10/10* Rosh Chodesh Cheshvan +2018/10/16* Yom HaAliyah +2018/11/7* Sigd +2018/11/8* Rosh Chodesh Kislev +2018/11/9* Rosh Chodesh Kislev +2018/12/2* Chanukah: 1 Candle +2018/12/3* Chanukah: 2 Candles +2018/12/4* Chanukah: 3 Candles +2018/12/5* Chanukah: 4 Candles +2018/12/6* Chanukah: 5 Candles +2018/12/7* Chanukah: 6 Candles +2018/12/8* Rosh Chodesh Tevet +2018/12/8* Chanukah: 7 Candles +2018/12/9* Rosh Chodesh Tevet +2018/12/9* Chanukah: 8 Candles +2018/12/10* Chanukah: 8th Day +2018/12/18* Asara B'Tevet +2019/1/7* Rosh Chodesh Sh'vat +2019/1/21* Tu BiShvat +2019/2/5* Rosh Chodesh Adar I +2019/2/6* Rosh Chodesh Adar I +2019/2/19* Purim Katan +2019/3/2* Shabbat Shekalim +2019/3/7* Rosh Chodesh Adar II +2019/3/8* Rosh Chodesh Adar II +2019/3/16* Shabbat Zachor +2019/3/20* Ta'anit Esther +2019/3/20* Erev Purim +2019/3/21* Purim +2019/3/22* Shushan Purim +2019/3/30* Shabbat Parah +2019/4/6* Rosh Chodesh Nisan +2019/4/6* Shabbat HaChodesh +2019/4/13* Shabbat HaGadol +2019/4/19* Ta'anit Bechorot +2019/4/19* Erev Pesach +2019/4/20* Pesach I +2019/4/21* Pesach II +2019/4/22* Pesach III (CH''M) +2019/4/23* Pesach IV (CH''M) +2019/4/24* Pesach V (CH''M) +2019/4/25* Pesach VI (CH''M) +2019/4/26* Pesach VII +2019/4/27* Pesach VIII +2019/5/2* Yom HaShoah +2019/5/5* Rosh Chodesh Iyyar +2019/5/6* Rosh Chodesh Iyyar +2019/5/8* Yom HaZikaron +2019/5/9* Yom HaAtzma'ut +2019/5/19* Pesach Sheni +2019/5/23* Lag BaOmer +2019/6/2* Yom Yerushalayim +2019/6/4* Rosh Chodesh Sivan +2019/6/8* Erev Shavuot +2019/6/9* Shavuot I +2019/6/10* Shavuot II +2019/7/3* Rosh Chodesh Tamuz +2019/7/4* Rosh Chodesh Tamuz +2019/7/21* Tzom Tammuz +2019/8/2* Rosh Chodesh Av +2019/8/10* Shabbat Chazon +2019/8/10* Erev Tish'a B'Av +2019/8/11* Tish'a B'Av +2019/8/16* Tu B'Av +2019/8/17* Shabbat Nachamu +2019/8/31* Rosh Chodesh Elul +2019/9/1* Rosh Chodesh Elul +2019/9/21* Leil Selichot +2019/9/29* Erev Rosh Hashana +2019/9/30* Rosh Hashana 5780 +2019/10/1* Rosh Hashana II +2019/10/2* Tzom Gedaliah +2019/10/5* Shabbat Shuva +2019/10/8* Erev Yom Kippur +2019/10/9* Yom Kippur +2019/10/13* Erev Sukkot +2019/10/14* Sukkot I +2019/10/15* Sukkot II +2019/10/16* Sukkot III (CH''M) +2019/10/17* Sukkot IV (CH''M) +2019/10/18* Sukkot V (CH''M) +2019/10/19* Sukkot VI (CH''M) +2019/10/20* Sukkot VII (Hoshana Raba) +2019/10/21* Shmini Atzeret +2019/10/22* Simchat Torah +2019/10/29* Rosh Chodesh Cheshvan +2019/10/30* Rosh Chodesh Cheshvan +2019/11/5* Yom HaAliyah +2019/11/27* Sigd +2019/11/28* Rosh Chodesh Kislev +2019/11/29* Rosh Chodesh Kislev +2019/12/22* Chanukah: 1 Candle +2019/12/23* Chanukah: 2 Candles +2019/12/24* Chanukah: 3 Candles +2019/12/25* Chanukah: 4 Candles +2019/12/26* Chanukah: 5 Candles +2019/12/27* Chanukah: 6 Candles +2019/12/28* Rosh Chodesh Tevet +2019/12/28* Chanukah: 7 Candles +2019/12/29* Rosh Chodesh Tevet +2019/12/29* Chanukah: 8 Candles +2019/12/30* Chanukah: 8th Day +2020/1/7* Asara B'Tevet +2020/1/27* Rosh Chodesh Sh'vat +2020/2/10* Tu BiShvat +2020/2/22* Shabbat Shekalim +2020/2/25* Rosh Chodesh Adar +2020/2/26* Rosh Chodesh Adar +2020/3/7* Shabbat Zachor +2020/3/9* Ta'anit Esther +2020/3/9* Erev Purim +2020/3/10* Purim +2020/3/11* Shushan Purim +2020/3/14* Shabbat Parah +2020/3/21* Shabbat HaChodesh +2020/3/26* Rosh Chodesh Nisan +2020/4/4* Shabbat HaGadol +2020/4/8* Ta'anit Bechorot +2020/4/8* Erev Pesach +2020/4/9* Pesach I +2020/4/10* Pesach II +2020/4/11* Pesach III (CH''M) +2020/4/12* Pesach IV (CH''M) +2020/4/13* Pesach V (CH''M) +2020/4/14* Pesach VI (CH''M) +2020/4/15* Pesach VII +2020/4/16* Pesach VIII +2020/4/21* Yom HaShoah +2020/4/24* Rosh Chodesh Iyyar +2020/4/25* Rosh Chodesh Iyyar +2020/4/28* Yom HaZikaron +2020/4/29* Yom HaAtzma'ut +2020/5/8* Pesach Sheni +2020/5/12* Lag BaOmer +2020/5/22* Yom Yerushalayim +2020/5/24* Rosh Chodesh Sivan +2020/5/28* Erev Shavuot +2020/5/29* Shavuot I +2020/5/30* Shavuot II +2020/6/22* Rosh Chodesh Tamuz +2020/6/23* Rosh Chodesh Tamuz +2020/7/9* Tzom Tammuz +2020/7/22* Rosh Chodesh Av +2020/7/25* Shabbat Chazon +2020/7/29* Erev Tish'a B'Av +2020/7/30* Tish'a B'Av +2020/8/1* Shabbat Nachamu +2020/8/5* Tu B'Av +2020/8/20* Rosh Chodesh Elul +2020/8/21* Rosh Chodesh Elul +2020/9/12* Leil Selichot +2020/9/18* Erev Rosh Hashana +2020/9/19* Rosh Hashana 5781 +2020/9/20* Rosh Hashana II +2020/9/21* Tzom Gedaliah +2020/9/26* Shabbat Shuva +2020/9/27* Erev Yom Kippur +2020/9/28* Yom Kippur +2020/10/2* Erev Sukkot +2020/10/3* Sukkot I +2020/10/4* Sukkot II +2020/10/5* Sukkot III (CH''M) +2020/10/6* Sukkot IV (CH''M) +2020/10/7* Sukkot V (CH''M) +2020/10/8* Sukkot VI (CH''M) +2020/10/9* Sukkot VII (Hoshana Raba) +2020/10/10* Shmini Atzeret +2020/10/11* Simchat Torah +2020/10/18* Rosh Chodesh Cheshvan +2020/10/19* Rosh Chodesh Cheshvan +2020/10/25* Yom HaAliyah +2020/11/16* Sigd +2020/11/17* Rosh Chodesh Kislev +2020/12/10* Chanukah: 1 Candle +2020/12/11* Chanukah: 2 Candles +2020/12/12* Chanukah: 3 Candles +2020/12/13* Chanukah: 4 Candles +2020/12/14* Chanukah: 5 Candles +2020/12/15* Chanukah: 6 Candles +2020/12/16* Rosh Chodesh Tevet +2020/12/16* Chanukah: 7 Candles +2020/12/17* Chanukah: 8 Candles +2020/12/18* Chanukah: 8th Day +2020/12/25* Asara B'Tevet +2021/1/14* Rosh Chodesh Sh'vat +2021/1/28* Tu BiShvat +2021/2/12* Rosh Chodesh Adar +2021/2/13* Rosh Chodesh Adar +2021/2/13* Shabbat Shekalim +2021/2/20* Shabbat Zachor +2021/2/25* Ta'anit Esther +2021/2/25* Erev Purim +2021/2/26* Purim +2021/2/28* Shushan Purim +2021/3/6* Shabbat Parah +2021/3/13* Shabbat HaChodesh +2021/3/14* Rosh Chodesh Nisan +2021/3/25* Ta'anit Bechorot +2021/3/27* Shabbat HaGadol +2021/3/27* Erev Pesach +2021/3/28* Pesach I +2021/3/29* Pesach II +2021/3/30* Pesach III (CH''M) +2021/3/31* Pesach IV (CH''M) +2021/4/1* Pesach V (CH''M) +2021/4/2* Pesach VI (CH''M) +2021/4/3* Pesach VII +2021/4/4* Pesach VIII +2021/4/8* Yom HaShoah +2021/4/12* Rosh Chodesh Iyyar +2021/4/13* Rosh Chodesh Iyyar +2021/4/14* Yom HaZikaron +2021/4/15* Yom HaAtzma'ut +2021/4/26* Pesach Sheni +2021/4/30* Lag BaOmer +2021/5/10* Yom Yerushalayim +2021/5/12* Rosh Chodesh Sivan +2021/5/16* Erev Shavuot +2021/5/17* Shavuot I +2021/5/18* Shavuot II +2021/6/10* Rosh Chodesh Tamuz +2021/6/11* Rosh Chodesh Tamuz +2021/6/27* Tzom Tammuz +2021/7/10* Rosh Chodesh Av +2021/7/17* Shabbat Chazon +2021/7/17* Erev Tish'a B'Av +2021/7/18* Tish'a B'Av +2021/7/24* Shabbat Nachamu +2021/7/24* Tu B'Av +2021/8/8* Rosh Chodesh Elul +2021/8/9* Rosh Chodesh Elul +2021/8/28* Leil Selichot +2021/9/6* Erev Rosh Hashana +2021/9/7* Rosh Hashana 5782 +2021/9/8* Rosh Hashana II +2021/9/9* Tzom Gedaliah +2021/9/11* Shabbat Shuva +2021/9/15* Erev Yom Kippur +2021/9/16* Yom Kippur +2021/9/20* Erev Sukkot +2021/9/21* Sukkot I +2021/9/22* Sukkot II +2021/9/23* Sukkot III (CH''M) +2021/9/24* Sukkot IV (CH''M) +2021/9/25* Sukkot V (CH''M) +2021/9/26* Sukkot VI (CH''M) +2021/9/27* Sukkot VII (Hoshana Raba) +2021/9/28* Shmini Atzeret +2021/9/29* Simchat Torah +2021/10/6* Rosh Chodesh Cheshvan +2021/10/7* Rosh Chodesh Cheshvan +2021/10/13* Yom HaAliyah +2021/11/4* Sigd +2021/11/5* Rosh Chodesh Kislev +2021/11/28* Chanukah: 1 Candle +2021/11/29* Chanukah: 2 Candles +2021/11/30* Chanukah: 3 Candles +2021/12/1* Chanukah: 4 Candles +2021/12/2* Chanukah: 5 Candles +2021/12/3* Chanukah: 6 Candles +2021/12/4* Rosh Chodesh Tevet +2021/12/4* Chanukah: 7 Candles +2021/12/5* Rosh Chodesh Tevet +2021/12/5* Chanukah: 8 Candles +2021/12/6* Chanukah: 8th Day +2021/12/14* Asara B'Tevet +2022/1/3* Rosh Chodesh Sh'vat +2022/1/17* Tu BiShvat +2022/2/1* Rosh Chodesh Adar I +2022/2/2* Rosh Chodesh Adar I +2022/2/15* Purim Katan +2022/2/26* Shabbat Shekalim +2022/3/3* Rosh Chodesh Adar II +2022/3/4* Rosh Chodesh Adar II +2022/3/12* Shabbat Zachor +2022/3/16* Ta'anit Esther +2022/3/16* Erev Purim +2022/3/17* Purim +2022/3/18* Shushan Purim +2022/3/26* Shabbat Parah +2022/4/2* Rosh Chodesh Nisan +2022/4/2* Shabbat HaChodesh +2022/4/9* Shabbat HaGadol +2022/4/15* Ta'anit Bechorot +2022/4/15* Erev Pesach +2022/4/16* Pesach I +2022/4/17* Pesach II +2022/4/18* Pesach III (CH''M) +2022/4/19* Pesach IV (CH''M) +2022/4/20* Pesach V (CH''M) +2022/4/21* Pesach VI (CH''M) +2022/4/22* Pesach VII +2022/4/23* Pesach VIII +2022/4/28* Yom HaShoah +2022/5/1* Rosh Chodesh Iyyar +2022/5/2* Rosh Chodesh Iyyar +2022/5/4* Yom HaZikaron +2022/5/5* Yom HaAtzma'ut +2022/5/15* Pesach Sheni +2022/5/19* Lag BaOmer +2022/5/29* Yom Yerushalayim +2022/5/31* Rosh Chodesh Sivan +2022/6/4* Erev Shavuot +2022/6/5* Shavuot I +2022/6/6* Shavuot II +2022/6/29* Rosh Chodesh Tamuz +2022/6/30* Rosh Chodesh Tamuz +2022/7/17* Tzom Tammuz +2022/7/29* Rosh Chodesh Av +2022/8/6* Shabbat Chazon +2022/8/6* Erev Tish'a B'Av +2022/8/7* Tish'a B'Av +2022/8/12* Tu B'Av +2022/8/13* Shabbat Nachamu +2022/8/27* Rosh Chodesh Elul +2022/8/28* Rosh Chodesh Elul +2022/9/17* Leil Selichot +2022/9/25* Erev Rosh Hashana +2022/9/26* Rosh Hashana 5783 +2022/9/27* Rosh Hashana II +2022/9/28* Tzom Gedaliah +2022/10/1* Shabbat Shuva +2022/10/4* Erev Yom Kippur +2022/10/5* Yom Kippur +2022/10/9* Erev Sukkot +2022/10/10* Sukkot I +2022/10/11* Sukkot II +2022/10/12* Sukkot III (CH''M) +2022/10/13* Sukkot IV (CH''M) +2022/10/14* Sukkot V (CH''M) +2022/10/15* Sukkot VI (CH''M) +2022/10/16* Sukkot VII (Hoshana Raba) +2022/10/17* Shmini Atzeret +2022/10/18* Simchat Torah +2022/10/25* Rosh Chodesh Cheshvan +2022/10/26* Rosh Chodesh Cheshvan +2022/11/1* Yom HaAliyah +2022/11/23* Sigd +2022/11/24* Rosh Chodesh Kislev +2022/11/25* Rosh Chodesh Kislev +2022/12/18* Chanukah: 1 Candle +2022/12/19* Chanukah: 2 Candles +2022/12/20* Chanukah: 3 Candles +2022/12/21* Chanukah: 4 Candles +2022/12/22* Chanukah: 5 Candles +2022/12/23* Chanukah: 6 Candles +2022/12/24* Rosh Chodesh Tevet +2022/12/24* Chanukah: 7 Candles +2022/12/25* Rosh Chodesh Tevet +2022/12/25* Chanukah: 8 Candles +2022/12/26* Chanukah: 8th Day +2023/1/3* Asara B'Tevet +2023/1/23* Rosh Chodesh Sh'vat +2023/2/6* Tu BiShvat +2023/2/18* Shabbat Shekalim +2023/2/21* Rosh Chodesh Adar +2023/2/22* Rosh Chodesh Adar +2023/3/4* Shabbat Zachor +2023/3/6* Ta'anit Esther +2023/3/6* Erev Purim +2023/3/7* Purim +2023/3/8* Shushan Purim +2023/3/11* Shabbat Parah +2023/3/18* Shabbat HaChodesh +2023/3/23* Rosh Chodesh Nisan +2023/4/1* Shabbat HaGadol +2023/4/5* Ta'anit Bechorot +2023/4/5* Erev Pesach +2023/4/6* Pesach I +2023/4/7* Pesach II +2023/4/8* Pesach III (CH''M) +2023/4/9* Pesach IV (CH''M) +2023/4/10* Pesach V (CH''M) +2023/4/11* Pesach VI (CH''M) +2023/4/12* Pesach VII +2023/4/13* Pesach VIII +2023/4/18* Yom HaShoah +2023/4/21* Rosh Chodesh Iyyar +2023/4/22* Rosh Chodesh Iyyar +2023/4/25* Yom HaZikaron +2023/4/26* Yom HaAtzma'ut +2023/5/5* Pesach Sheni +2023/5/9* Lag BaOmer +2023/5/19* Yom Yerushalayim +2023/5/21* Rosh Chodesh Sivan +2023/5/25* Erev Shavuot +2023/5/26* Shavuot I +2023/5/27* Shavuot II +2023/6/19* Rosh Chodesh Tamuz +2023/6/20* Rosh Chodesh Tamuz +2023/7/6* Tzom Tammuz +2023/7/19* Rosh Chodesh Av +2023/7/22* Shabbat Chazon +2023/7/26* Erev Tish'a B'Av +2023/7/27* Tish'a B'Av +2023/7/29* Shabbat Nachamu +2023/8/2* Tu B'Av +2023/8/17* Rosh Chodesh Elul +2023/8/18* Rosh Chodesh Elul +2023/9/9* Leil Selichot +2023/9/15* Erev Rosh Hashana +2023/9/16* Rosh Hashana 5784 +2023/9/17* Rosh Hashana II +2023/9/18* Tzom Gedaliah +2023/9/23* Shabbat Shuva +2023/9/24* Erev Yom Kippur +2023/9/25* Yom Kippur +2023/9/29* Erev Sukkot +2023/9/30* Sukkot I +2023/10/1* Sukkot II +2023/10/2* Sukkot III (CH''M) +2023/10/3* Sukkot IV (CH''M) +2023/10/4* Sukkot V (CH''M) +2023/10/5* Sukkot VI (CH''M) +2023/10/6* Sukkot VII (Hoshana Raba) +2023/10/7* Shmini Atzeret +2023/10/8* Simchat Torah +2023/10/15* Rosh Chodesh Cheshvan +2023/10/16* Rosh Chodesh Cheshvan +2023/10/22* Yom HaAliyah +2023/11/13* Sigd +2023/11/14* Rosh Chodesh Kislev +2023/12/7* Chanukah: 1 Candle +2023/12/8* Chanukah: 2 Candles +2023/12/9* Chanukah: 3 Candles +2023/12/10* Chanukah: 4 Candles +2023/12/11* Chanukah: 5 Candles +2023/12/12* Chanukah: 6 Candles +2023/12/13* Rosh Chodesh Tevet +2023/12/13* Chanukah: 7 Candles +2023/12/14* Chanukah: 8 Candles +2023/12/15* Chanukah: 8th Day +2023/12/22* Asara B'Tevet +2024/1/11* Rosh Chodesh Sh'vat +2024/1/25* Tu BiShvat +2024/2/9* Rosh Chodesh Adar I +2024/2/10* Rosh Chodesh Adar I +2024/2/23* Purim Katan +2024/3/9* Shabbat Shekalim +2024/3/10* Rosh Chodesh Adar II +2024/3/11* Rosh Chodesh Adar II +2024/3/21* Ta'anit Esther +2024/3/23* Shabbat Zachor +2024/3/23* Erev Purim +2024/3/24* Purim +2024/3/25* Shushan Purim +2024/3/30* Shabbat Parah +2024/4/6* Shabbat HaChodesh +2024/4/9* Rosh Chodesh Nisan +2024/4/20* Shabbat HaGadol +2024/4/22* Ta'anit Bechorot +2024/4/22* Erev Pesach +2024/4/23* Pesach I +2024/4/24* Pesach II +2024/4/25* Pesach III (CH''M) +2024/4/26* Pesach IV (CH''M) +2024/4/27* Pesach V (CH''M) +2024/4/28* Pesach VI (CH''M) +2024/4/29* Pesach VII +2024/4/30* Pesach VIII +2024/5/6* Yom HaShoah +2024/5/8* Rosh Chodesh Iyyar +2024/5/9* Rosh Chodesh Iyyar +2024/5/13* Yom HaZikaron +2024/5/14* Yom HaAtzma'ut +2024/5/22* Pesach Sheni +2024/5/26* Lag BaOmer +2024/6/5* Yom Yerushalayim +2024/6/7* Rosh Chodesh Sivan +2024/6/11* Erev Shavuot +2024/6/12* Shavuot I +2024/6/13* Shavuot II +2024/7/6* Rosh Chodesh Tamuz +2024/7/7* Rosh Chodesh Tamuz +2024/7/23* Tzom Tammuz +2024/8/5* Rosh Chodesh Av +2024/8/10* Shabbat Chazon +2024/8/12* Erev Tish'a B'Av +2024/8/13* Tish'a B'Av +2024/8/17* Shabbat Nachamu +2024/8/19* Tu B'Av +2024/9/3* Rosh Chodesh Elul +2024/9/4* Rosh Chodesh Elul +2024/9/28* Leil Selichot +2024/10/2* Erev Rosh Hashana +2024/10/3* Rosh Hashana 5785 +2024/10/4* Rosh Hashana II +2024/10/5* Shabbat Shuva +2024/10/6* Tzom Gedaliah +2024/10/11* Erev Yom Kippur +2024/10/12* Yom Kippur +2024/10/16* Erev Sukkot +2024/10/17* Sukkot I +2024/10/18* Sukkot II +2024/10/19* Sukkot III (CH''M) +2024/10/20* Sukkot IV (CH''M) +2024/10/21* Sukkot V (CH''M) +2024/10/22* Sukkot VI (CH''M) +2024/10/23* Sukkot VII (Hoshana Raba) +2024/10/24* Shmini Atzeret +2024/10/25* Simchat Torah +2024/11/1* Rosh Chodesh Cheshvan +2024/11/2* Rosh Chodesh Cheshvan +2024/11/8* Yom HaAliyah +2024/11/30* Sigd +2024/12/1* Rosh Chodesh Kislev +2024/12/2* Rosh Chodesh Kislev +2024/12/25* Chanukah: 1 Candle +2024/12/26* Chanukah: 2 Candles +2024/12/27* Chanukah: 3 Candles +2024/12/28* Chanukah: 4 Candles +2024/12/29* Chanukah: 5 Candles +2024/12/30* Chanukah: 6 Candles +2024/12/31* Rosh Chodesh Tevet +2024/12/31* Chanukah: 7 Candles +2025/1/1* Rosh Chodesh Tevet +2025/1/1* Chanukah: 8 Candles +2025/1/2* Chanukah: 8th Day +2025/1/10* Asara B'Tevet +2025/1/30* Rosh Chodesh Sh'vat +2025/2/13* Tu BiShvat +2025/2/28* Rosh Chodesh Adar +2025/3/1* Rosh Chodesh Adar +2025/3/1* Shabbat Shekalim +2025/3/8* Shabbat Zachor +2025/3/13* Ta'anit Esther +2025/3/13* Erev Purim +2025/3/14* Purim +2025/3/16* Shushan Purim +2025/3/22* Shabbat Parah +2025/3/29* Shabbat HaChodesh +2025/3/30* Rosh Chodesh Nisan +2025/4/10* Ta'anit Bechorot +2025/4/12* Shabbat HaGadol +2025/4/12* Erev Pesach +2025/4/13* Pesach I +2025/4/14* Pesach II +2025/4/15* Pesach III (CH''M) +2025/4/16* Pesach IV (CH''M) +2025/4/17* Pesach V (CH''M) +2025/4/18* Pesach VI (CH''M) +2025/4/19* Pesach VII +2025/4/20* Pesach VIII +2025/4/24* Yom HaShoah +2025/4/28* Rosh Chodesh Iyyar +2025/4/29* Rosh Chodesh Iyyar +2025/4/30* Yom HaZikaron +2025/5/1* Yom HaAtzma'ut +2025/5/12* Pesach Sheni +2025/5/16* Lag BaOmer +2025/5/26* Yom Yerushalayim +2025/5/28* Rosh Chodesh Sivan +2025/6/1* Erev Shavuot +2025/6/2* Shavuot I +2025/6/3* Shavuot II +2025/6/26* Rosh Chodesh Tamuz +2025/6/27* Rosh Chodesh Tamuz +2025/7/13* Tzom Tammuz +2025/7/26* Rosh Chodesh Av +2025/8/2* Shabbat Chazon +2025/8/2* Erev Tish'a B'Av +2025/8/3* Tish'a B'Av +2025/8/9* Shabbat Nachamu +2025/8/9* Tu B'Av +2025/8/24* Rosh Chodesh Elul +2025/8/25* Rosh Chodesh Elul +2025/9/13* Leil Selichot +2025/9/22* Erev Rosh Hashana +2025/9/23* Rosh Hashana 5786 +2025/9/24* Rosh Hashana II +2025/9/25* Tzom Gedaliah +2025/9/27* Shabbat Shuva +2025/10/1* Erev Yom Kippur +2025/10/2* Yom Kippur +2025/10/6* Erev Sukkot +2025/10/7* Sukkot I +2025/10/8* Sukkot II +2025/10/9* Sukkot III (CH''M) +2025/10/10* Sukkot IV (CH''M) +2025/10/11* Sukkot V (CH''M) +2025/10/12* Sukkot VI (CH''M) +2025/10/13* Sukkot VII (Hoshana Raba) +2025/10/14* Shmini Atzeret +2025/10/15* Simchat Torah +2025/10/22* Rosh Chodesh Cheshvan +2025/10/23* Rosh Chodesh Cheshvan +2025/10/29* Yom HaAliyah +2025/11/20* Sigd +2025/11/21* Rosh Chodesh Kislev +2025/12/14* Chanukah: 1 Candle +2025/12/15* Chanukah: 2 Candles +2025/12/16* Chanukah: 3 Candles +2025/12/17* Chanukah: 4 Candles +2025/12/18* Chanukah: 5 Candles +2025/12/19* Chanukah: 6 Candles +2025/12/20* Rosh Chodesh Tevet +2025/12/20* Chanukah: 7 Candles +2025/12/21* Rosh Chodesh Tevet +2025/12/21* Chanukah: 8 Candles +2025/12/22* Chanukah: 8th Day +2025/12/30* Asara B'Tevet +2026/1/19* Rosh Chodesh Sh'vat +2026/2/2* Tu BiShvat +2026/2/14* Shabbat Shekalim +2026/2/17* Rosh Chodesh Adar +2026/2/18* Rosh Chodesh Adar +2026/2/28* Shabbat Zachor +2026/3/2* Ta'anit Esther +2026/3/2* Erev Purim +2026/3/3* Purim +2026/3/4* Shushan Purim +2026/3/7* Shabbat Parah +2026/3/14* Shabbat HaChodesh +2026/3/19* Rosh Chodesh Nisan +2026/3/28* Shabbat HaGadol +2026/4/1* Ta'anit Bechorot +2026/4/1* Erev Pesach +2026/4/2* Pesach I +2026/4/3* Pesach II +2026/4/4* Pesach III (CH''M) +2026/4/5* Pesach IV (CH''M) +2026/4/6* Pesach V (CH''M) +2026/4/7* Pesach VI (CH''M) +2026/4/8* Pesach VII +2026/4/9* Pesach VIII +2026/4/14* Yom HaShoah +2026/4/17* Rosh Chodesh Iyyar +2026/4/18* Rosh Chodesh Iyyar +2026/4/21* Yom HaZikaron +2026/4/22* Yom HaAtzma'ut +2026/5/1* Pesach Sheni +2026/5/5* Lag BaOmer +2026/5/15* Yom Yerushalayim +2026/5/17* Rosh Chodesh Sivan +2026/5/21* Erev Shavuot +2026/5/22* Shavuot I +2026/5/23* Shavuot II +2026/6/15* Rosh Chodesh Tamuz +2026/6/16* Rosh Chodesh Tamuz +2026/7/2* Tzom Tammuz +2026/7/15* Rosh Chodesh Av +2026/7/18* Shabbat Chazon +2026/7/22* Erev Tish'a B'Av +2026/7/23* Tish'a B'Av +2026/7/25* Shabbat Nachamu +2026/7/29* Tu B'Av +2026/8/13* Rosh Chodesh Elul +2026/8/14* Rosh Chodesh Elul +2026/9/5* Leil Selichot +2026/9/11* Erev Rosh Hashana +2026/9/12* Rosh Hashana 5787 +2026/9/13* Rosh Hashana II +2026/9/14* Tzom Gedaliah +2026/9/19* Shabbat Shuva +2026/9/20* Erev Yom Kippur +2026/9/21* Yom Kippur +2026/9/25* Erev Sukkot +2026/9/26* Sukkot I +2026/9/27* Sukkot II +2026/9/28* Sukkot III (CH''M) +2026/9/29* Sukkot IV (CH''M) +2026/9/30* Sukkot V (CH''M) +2026/10/1* Sukkot VI (CH''M) +2026/10/2* Sukkot VII (Hoshana Raba) +2026/10/3* Shmini Atzeret +2026/10/4* Simchat Torah +2026/10/11* Rosh Chodesh Cheshvan +2026/10/12* Rosh Chodesh Cheshvan +2026/10/18* Yom HaAliyah +2026/11/9* Sigd +2026/11/10* Rosh Chodesh Kislev +2026/11/11* Rosh Chodesh Kislev +2026/12/4* Chanukah: 1 Candle +2026/12/5* Chanukah: 2 Candles +2026/12/6* Chanukah: 3 Candles +2026/12/7* Chanukah: 4 Candles +2026/12/8* Chanukah: 5 Candles +2026/12/9* Chanukah: 6 Candles +2026/12/10* Rosh Chodesh Tevet +2026/12/10* Chanukah: 7 Candles +2026/12/11* Rosh Chodesh Tevet +2026/12/11* Chanukah: 8 Candles +2026/12/12* Chanukah: 8th Day +2026/12/20* Asara B'Tevet +2027/1/9* Rosh Chodesh Sh'vat +2027/1/23* Tu BiShvat +2027/2/7* Rosh Chodesh Adar I +2027/2/8* Rosh Chodesh Adar I +2027/2/21* Purim Katan +2027/3/6* Shabbat Shekalim +2027/3/9* Rosh Chodesh Adar II +2027/3/10* Rosh Chodesh Adar II +2027/3/20* Shabbat Zachor +2027/3/22* Ta'anit Esther +2027/3/22* Erev Purim +2027/3/23* Purim +2027/3/24* Shushan Purim +2027/3/27* Shabbat Parah +2027/4/3* Shabbat HaChodesh +2027/4/8* Rosh Chodesh Nisan +2027/4/17* Shabbat HaGadol +2027/4/21* Ta'anit Bechorot +2027/4/21* Erev Pesach +2027/4/22* Pesach I +2027/4/23* Pesach II +2027/4/24* Pesach III (CH''M) +2027/4/25* Pesach IV (CH''M) +2027/4/26* Pesach V (CH''M) +2027/4/27* Pesach VI (CH''M) +2027/4/28* Pesach VII +2027/4/29* Pesach VIII +2027/5/4* Yom HaShoah +2027/5/7* Rosh Chodesh Iyyar +2027/5/8* Rosh Chodesh Iyyar +2027/5/11* Yom HaZikaron +2027/5/12* Yom HaAtzma'ut +2027/5/21* Pesach Sheni +2027/5/25* Lag BaOmer +2027/6/4* Yom Yerushalayim +2027/6/6* Rosh Chodesh Sivan +2027/6/10* Erev Shavuot +2027/6/11* Shavuot I +2027/6/12* Shavuot II +2027/7/5* Rosh Chodesh Tamuz +2027/7/6* Rosh Chodesh Tamuz +2027/7/22* Tzom Tammuz +2027/8/4* Rosh Chodesh Av +2027/8/7* Shabbat Chazon +2027/8/11* Erev Tish'a B'Av +2027/8/12* Tish'a B'Av +2027/8/14* Shabbat Nachamu +2027/8/18* Tu B'Av +2027/9/2* Rosh Chodesh Elul +2027/9/3* Rosh Chodesh Elul +2027/9/25* Leil Selichot +2027/10/1* Erev Rosh Hashana +2027/10/2* Rosh Hashana 5788 +2027/10/3* Rosh Hashana II +2027/10/4* Tzom Gedaliah + + +#endif /* !_calendar_judaic_ */ diff --git a/usr.bin/calendar/calendars/calendar.lotr b/usr.bin/calendar/calendars/calendar.lotr new file mode 100644 index 000000000000..2450e363400b --- /dev/null +++ b/usr.bin/calendar/calendars/calendar.lotr @@ -0,0 +1,48 @@ +/* + * Lord Of The Rings + * + * $FreeBSD$ + */ + +#ifndef _calendar_lotr_ +#define _calendar_lotr_ + +01/05 Fellowship enters Moria +01/09 Fellowship reaches Lorien +01/17 Passing of Gandalf +02/07 Fellowship leaves Lorien +02/17 Death of Boromir +02/20 Meriadoc & Pippin meet Treebeard +02/22 Passing of King Ellesar +02/24 Ents destroy Isengard +02/26 Aragorn takes the Paths of the Dead +03/05 Frodo & Samwise encounter Shelob +03/08 Deaths of Denethor & Theoden +03/18 Destruction of the Ring +03/29 Flowering of the Mallorn +04/04 Gandalf visits Bilbo +04/17 An unexpected party +04/23 Crowning of King Ellesar +05/19 Arwen leaves Lorian to wed King Ellesar +06/11 Sauron attacks Osgilliath +06/13 Bilbo returns to Bag End +06/23 Wedding of Ellesar & Arwen +07/04 Gandalf imprisoned by Saruman +07/24 The ring comes to Bilbo +07/26 Bilbo rescued from Wargs by Eagles +08/03 Funeral of King Theoden +08/29 Saruman enters the Shire +09/10 Gandalf escapes from Orthanc +09/14 Frodo & Bilbo's birthday +09/15 Black riders enter the Shire +09/18 Frodo and company rescued by Bombadil +09/28 Frodo wounded at Weathertop +10/05 Frodo crosses bridge of Mitheithel +10/16 Boromir reaches Rivendell +10/17 Council of Elrond +10/25 End of War of the Ring +11/16 Bilbo reaches the Lonely Mountain +12/05 Death of Smaug +12/16 Fellowship begins Quest + +#endif /* !_calendar_lotr_ */ diff --git a/usr.bin/calendar/calendars/calendar.music b/usr.bin/calendar/calendars/calendar.music new file mode 100644 index 000000000000..20e1915368d8 --- /dev/null +++ b/usr.bin/calendar/calendars/calendar.music @@ -0,0 +1,240 @@ +/* + * Music + * + * $FreeBSD$ + */ + +#ifndef _calendar_music_ +#define _calendar_music_ + +01/01 Country Joe McDonald is born in El Monte, California, 1942 +01/03 Steven Stills is born in Dallas, 1945 +01/04 Jazz great Charlie Mingus dies at 57 in Cuernavaca, Mexico, 1979 +01/08 David Bowie (then David Robert Jones) is born in London, 1947 +01/08 Elvis Presley born, 1935 +01/09 James Patrick Page (Led Zeppelin) is born in Middlesex, England, 1945 +01/10 Blues guitarist Howlin' Wolf dies in Chicago, 1976 +01/10 Jim Croce is born in Philadelphia, 1943 +01/10 Pat Benatar is born in Long Island, 1952 +01/10 Rod Stewart is born in Glasgow, Scotland, 1945 +01/13 Eric Clapton plays the "Rainbow Concert" in London, 1973 +01/17 Led Zeppelin's first album is released, 1969 +01/19 Janis Joplin is born in Port Arthur, Texas, 1943 +01/22 Sam Cooke is born in Chicago, 1935 +01/24 Warren Zevon is born in Chicago, 1947 +01/25 Bob Dylan plays the second "Hurricane" benefit, in the Astrodome, 1978 +01/27 Bobby "Blue" Bland (Robert Calvin Bland) is born in Tennessee, 1930 +01/27 Wolfgang Amadeus Mozart is born in Salzburg, Austria, 1756 +01/28 Jimi Hendrix headlines Madison Square Garden, 1970 +01/30 Lightnin' Hopkins, the most-recorded blues artist ever, dies, 1982 +01/31 Franz Schubert is born in Lichtenthal, Vienna, Austria, 1797 +01/31 The Grateful Dead are busted in New Orleans, 1970 +02/01 RCA Victor unveils the 45 rpm record playing system, 1949 +02/02 Graham Nash is born in Lancashire, England, 1942 +02/03 Felix Mendelssohn Bartholdy is born in Hamburg, Germany, 1809 +02/03 The Day The Music Died; Buddy Holly, Richie Valens, and the Big + Bopper are killed in a plane crash outside Mason City, Iowa, 1959 +02/07 Beatles land at JFK airport to begin first U.S. tour, 1964 +02/07 Steven Stills makes the first digitally recorded rock album, 1979 +02/09 Carole King (Carole Klein) is born in Brooklyn, 1941 +02/12 The Beatles play Carnegie Hall in New York City, 1964 +02/13 Richard Wagner dies in Venice, Italy, 1883 +02/17 Jazz great Thelonius Monk dies in Englewood, New Jersey, 1982 +02/18 Yoko Ono Lennon is born in Tokyo, 1933 +02/19 Paul McCartney's "Give Ireland Back to the Irish" is banned in + Britain, 1972 +02/19 William "Smokey" Robinson is born in Detroit, 1940 +02/20 J. Geils (J. Geils Band) is born, 1946 +02/20 Yes sells out Madison Square Garden...without advertising, 1974 +02/23 George Friedrich Handel is born in Halle on the Saale, Germany, 1685 +02/23 Johnny Winter is born in Leland, Mississippi, 1944 +02/25 George Harrison born in Liverpool, England, 1943 +02/29 Jimmy Dorsey born, 1904 +03/01 Frederic Chopin is born in Zelazowa Wola, Warsaw, Poland, 1810 +03/01 Jim Morrison is busted for obscenity in Miami, 1969 +03/02 Blues guitarist Rory Gallagher is born in Ballyshannon, Ireland, 1949 +03/03 Buffalo Springfield is formed in Los Angeles, 1966 +03/04 Antonio Vivaldi born in Venice, Italy, 1678 +03/07 Last Gilbert & Sullivan opera produced, 1896 +03/08 Ron "Pigpen" McKernan (Grateful Dead) dies in California, 1973 +03/08 (Louis) Hector Berlioz dies in Paris, 1869 +03/09 Robin Trower is born in London, 1945 +03/13 The Allman Brothers record their live album at the Fillmore East, 1971 +03/15 Sly Stone born, 1944 +03/17 Paul Kantner (Jefferson Airplane) is born in San Francisco, 1942 +03/21 Johann Sebastian Bach is born in Eisenach, Germany, 1685 +03/22 Ten Years After plays their last concert, 1974 +03/25 Aretha Franklin is born in Detroit, 1943 +03/25 Bela Bartok is born in Nagyszentmiklos, Hungary, 1881 +03/26 Emerson, Lake, and Palmer record "Pictures at an Exhibition" live, 1971 +03/26 Ludwig van Beethoven dies in Vienna, Austria, 1827 +03/28 Sergej Rachmaninow dies in Beverley Hills, 1943 +03/29 Carl Orff dies in Munich, Germany, 1982 +03/29 Dr. Hook gets a group picture on the cover of "Rolling Stone", 1973 +03/30 Eric Clapton is born in Surrey, England, 1945 +03/31 Joseph Haydn is born in Rohrau, Austria, 1732 +04/01 Sergej Rachmaninow is born in Oneg, Russia, 1873 +04/02 Marvin Gaye is born in Washington, D.C., 1939 +04/04 Muddy Waters (McKinley Morganfield) is born in Rolling Fork, + Mississippi, 1915 +04/09 Paul Robeson born, 1898 +04/10 Paul McCartney announces that he's quitting the Beatles, 1970 +04/14 George Friedrich Handel dies in London, England, 1759 +04/14 Ritchie Blackmore (Deep Purple, Rainbow) is born, 1945 +04/18 Yes breaks up after 13 years, 1981 +04/25 Blues guitarist Albert King is born, 1925 +04/25 Ella Fitzgerald born, 1918 +04/26 Carol Burnett born in San Antonio, Texas, 1933 +04/29 "Hair" premiers on Broadway, 1968 +05/01 Kate Smith born, 1909 +05/01 Antonin Dvorak dies in Prague, 1904 +05/03 Bob Seger is born in Ann Arbor, Michigan, 1945 +05/07 Johannes Brahms is born in Hamburg, Germany, 1833 +05/07 Tchaikowsky born, 1840 +05/10 Dave Mason is born in Worcester, England, 1945 +05/11 Bob Marley dies in his sleep in Miami, 1981 +05/12 Pink Floyd performs the first quadrophonic concert, 1977 +05/18 Gustav Mahler dies in Vienna, Austria, 1911 +05/18 Rick Wakeman is born in West London, England, 1949 +05/19 Pete Townshend is born in London, 1945 +05/20 The Jimi Hendrix Experience is signed by Reprise Records, 1967 +05/22 Richard Wagner is born in Leipzig, Germany, 1813 +05/23 Blues great Elmore James dies, 1963 +05/24 Bob Dylan (Robert Zimmerman) is born in Duluth, 1941 +05/26 Al Jolson born, 1886 +05/31 Joseph Haydn dies in Vienna, Austria, 1809 +05/31 The Who perform the loudest concert ever -- 76,000 watts of PA, 1976 +06/01 The Beatles release "Sgt. Pepper", 1967 +06/03 Georges Bizet dies in Bougival, Paris, France, 1875 +06/05 Carl Maria von Weber dies in London, England, 1826 +06/06 "Rock Around The Clock" makes Billboard's #1 slot, 1955 +06/06 Dee Dee Ramone dies, 2002 +06/07 Blind Faith debuts in concert at London's Hyde Park, 1969 +06/08 Robert Schumann is born in Zwickau, Germany, 1810 +06/09 Les Paul (Lester Polfus) is born in Waukesha, Wisconsin, 1923 +06/10 Howlin' Wolf (Chester Burnett) is born in West Point, Mississippi, 1910 +06/10 Judy Garland born, 1922 +06/11 Richard Strauss is born in Munich, Germany, 1864 +06/15 Edvard Grieg is born in Bergen, Norway, 1843 +06/15 Harry Nilsson is born in Brooklyn, 1941 +06/16 The Monterey Pop festival opens, 1967 +06/18 Paul McCartney born in Liverpool, England, 1942 +06/21 Columbia records announces the first mass production of LP's, 1948 +06/22 Todd Rundgren is born in Upper Darby, Pennsylvania, 1948 +06/24 Jeff Beck is born in Surrey, England, 1944 +06/27 John Entwistle dies in Las Vegas, 2002 +07/02 Felix Pappalardi and Leslie West form Mountain, 1969 +07/03 Jim Morrison dies in Paris, 1971 +07/06 The Jefferson Airplane is formed in San Francisco, 1965 +07/07 Gustav Mahler is born in Kalischt, Bohemia, 1860 +07/07 Ringo Starr (Richard Starkey) born in Liverpool, England, 1940 +07/10 Carl Orff is born in Munich, Germany, 1895 +07/12 Chicago DJ Steve Dahl holds "Disco Demolition" at Kamisky Park, 1979 +07/14 Woodie Guthrie born, 1912 +07/16 Cream forms in the U.K., 1966 +07/16 Harry Chapin dies on Long Island Expressway, 1981 +07/17 "Yellow Submarine" premieres at the London Pavilion, 1968 +07/20 Carlos Santana is born in Autlan, Mexico, 1947 +07/25 Bob Dylan goes electric at the Newport Folk Festival, 1965 +07/25 Crosby, Stills, Nash & Young debut at the Fillmore East, 1969 +07/26 Mick Jagger is born in Kent, England, 1943 +07/28 Antonio Vivaldi dies in Vienna, 1741 +07/28 Johann Sebastian Bach dies in Leipzig, 1750 +07/28 The Watkins Glen "Summer Jam" opens, 1973 +07/29 Robert Schumann dies in Endenich, Bonn, Germany, 1856 +08/01 The Concert for Bangla Desh takes place at Madison Square Garden, 1971 +08/04 John Lennon points out that "the Beatles are more popular than Jesus", 1966 +08/10 Ian Anderson (Jethro Tull) is born in Edinburgh, Scotland, 1947 +08/13 Dan Fogelberg is born in Peoria, Illinois, 1951 +08/15 Beatles replace drummer Pete Best with Richard Starkey, 1962 +08/15 The Beatles play Shea Stadium in New York, 1965 +08/15 Woodstock Festival, Max Yasgur's farm, 1969 +08/16 Elvis Presley dies, 1977 +08/16 Madonna Louise Ciccone born in Bay City, Michigan, 1958 +08/21 Joe Strummer (The Clash), born John Mellor in Ankara, Turkey, 1952 +08/23 Keith Moon is born in London, England, 1946 +08/26 Jimi Hendrix gives his last performance at the Isle of Wight, 1970 +08/26 Jimi Hendrix's Electric Ladyland Studios opens in New York, 1970 +09/04 Edvard Grieg dies in Bergen, Norway, 1907 +09/07 Keith Moon (The Who) dies in London of a drug overdose, 1978 +09/07 Warren Zevon dies in Los Angeles of lung cancer (mesothelioma), 2003 +09/08 Antonin Dvorak born in Nelahozeves, Bohemia, 1841 +09/08 Richard Strauss dies in Garmisch-Partenkirchen, Germany, 1949 +09/08 Ron "Pigpen" McKernan (Grateful Dead) is born in San Bruno, California, 1945 +09/14 Francis Scott Key writes words to "Star Spangled Banner", 1814 +09/16 B.B. King is born in Itta Bena, Mississippi, 1925 +09/18 Dee Dee Ramone (Douglas Colvin) born in Fort Lee, Virginia, 1952 +09/19 Simon & Garfunkel reunite to play New York's Central Park, 1981 +09/20 Jim Croce dies in a plane crash, 1973 +09/23 "Paul is dead" rumors sweep the country, 1969 +09/23 Bruce "The Boss" Springsteen is born in Freehold, New Jersey, 1949 +09/25 John Bonham (Led Zeppelin) dies of alcohol poisoning, 1980 +09/26 Bela Bartok dies in New York, 1945 +09/26 George Gershwin is born in Brooklyn, NY, 1898 +10/04 Janis Joplin dies of a heroin overdose in Hollywood, 1970 +10/05 Steve Miller is born in Dallas, 1943 +10/07 First Bandstand (later, American Bandstand) broadcast, 1957 +10/09 John Entwistle is born in London, England, 1944 +10/09 John Lennon born in Liverpool, England, 1940 +10/10 John Prine is born in Maywood, Illinois, 1946 +10/12 Ray Conniff dies after falling down and hitting his head, 2002 +10/12 The Jimi Hendrix Experience is formed in London, 1966 +10/16 Bob Weir (Grateful Dead) is born in San Francisco, 1947 +10/17 "Hair" opens at New York's Public Theater, 1967 +10/17 Frederic Chopin dies in Paris, France, 1849 +10/18 Chuck Berry is born in St. Louis, Missouri, 1926 +10/20 Three members of Lynyrd Skynyrd die in a plane crash, 1977 +10/21 Jesus Christ Super Star debuted on Broadway, 1971 +10/22 Franz Liszt born, 1811 +10/22 Pau (Pablo) Casals dies in Puerto Rico, 1973 +10/25 Georges Bizet is born in Paris, France, 1838 +10/25 Jon Anderson (Yes) is born in Lancashire, England, 1944 +10/25 The Rolling Stones appear on The Ed Sullivan Show, 1964 +10/29 Duane Allman dies in motorcycle crash near Macon, Georgia, 1971 +10/30 Grace Slick is born in Chicago, 1939 +11/02 Jimi Hendrix's "Electric Ladyland" enters US charts at #1, 1968 +11/02 Keith Emerson is born, 1944 +11/03 James Taylor and Carly Simon are married in Manhattan, 1972 +11/04 Felix Mendelssohn Bartholdy dies in Leipzig, Germany, 1847 +11/06 Ray Conniff born in Attleboro, Massachusetts, 1916 +11/07 Joni Mitchell (Roberta Joan Anderson) is born in Alberta, Canada, 1943 +11/08 Patti Page born, 1927 +11/09 The first issue of "Rolling Stone" is published, 1967 +11/10 Greg Lake is born in Bournemouth, England, 1948 +11/12 Neil Young is born in Toronto, 1945 +11/13 Paul Simon born, 1942 +11/16 Bill Ham first demonstrates his psychedelic "Light Show", 1965 +11/18 Carl Maria von Weber is born in Eutin, Germany, 1786 +11/19 Franz Schubert dies in Vienna, Austria, 1828 +11/20 Duane Allman is born in Nashville, Tennessee, 1946 +11/20 Joe Walsh is born in Cleveland, 1947 +11/22 Saint Cecilia's day (patron saint of music) +11/24 Scott Joplin born, 1868 +11/25 "The Last Waltz" concert is played by The Band at Winterland, 1976 +11/25 Johann Strauss, Jr., writes `On the Beautiful Blue Danube', 1867 +11/26 Cream performs their farewell concert at Royal Albert Hall, 1968 +11/26 Paul Hindemith is born in Hanau, Germany, 1895 +11/27 Jimi Hendrix (Johnny Allen Hendrix) is born in Seattle, 1942 +11/29 George Harrison dies at 13:20 in Los Angeles, California, 2001 +12/04 Frank Zappa dies in his Laurel Canyon home shortly before 18:00, 1993 +12/05 Wolfgang Amadeus Mozart dies in Vienna, Austria, 1791 +12/06 First sound recording made by Thomas Edison, 1877 +12/06 The Rolling Stones play Altamont Speedway near San Francisco, 1969 +12/07 Harry Chapin is born in New York City, 1942 +12/08 Jim Morrison is born in Melbourne, Florida, 1943 +12/08 John Lennon is shot and killed in New York City, 1980 +12/09 The Who's "Tommy" premieres in London, 1973 +12/11 (Louis) Hector Berlioz born in La-Côte-Saint-André, 1803 +12/13 Ted Nugent, the motor city madman, born in Detroit, 1949 +12/15 Thomas Edison receives patent on the phonograph, 1877 +12/16 Don McLean's "American Pie" is released, 1971 +12/17 Ludwig van Beethoven is christened in Bonn, 1770 +12/21 Frank Zappa is born in Baltimore, 1940 +12/23 First G&S collaboration, Thespis, 1871 +12/23 Joe Strummer (born John Mellor) dies in Broomfield, England, 2002 +12/28 Edgar Winter is born in Beaumont, Texas, 1946 +12/28 Paul Hindemith dies in Frankfurt/Main, Germany, 1963 +12/29 Pau (Pablo) Casals born in Vendrell, 1876 +12/31 Jimi Hendrix introduces the Band of Gypsies at the Fillmore East, 1969 + +#endif /* !_calendar_music_ */ diff --git a/usr.bin/calendar/calendars/calendar.newzealand b/usr.bin/calendar/calendars/calendar.newzealand new file mode 100644 index 000000000000..be069df8dfea --- /dev/null +++ b/usr.bin/calendar/calendars/calendar.newzealand @@ -0,0 +1,25 @@ +/* + * New Zealand holidays + * + * $FreeBSD$ + */ + +#ifndef _calendar_newzealand_ +#define _calendar_newzealand_ + +Jan 02 New Year Holiday (NZ) +Jan 14 Anniversary Day (Southland) +Jan 21 Anniversary Day (Wellington) +Jan 28 Anniversary Day (Auckland) +Feb 06 Waitangi Day (NZ) +Mar 11 Anniversary Day (Taranaki) +Mar 25 Anniversary Day (Otago) +Jun 03 Queen's Birthday (NZ) +Sep 23 Anniversary Day (South Canterbury) +Oct 25 Anniversary Day (Hawke's Bay) +Oct 28 Labour Day (NZ) +Nov 04 Anniversary Day (Marlborough) +Nov 15 Anniversary Day (Canterbury) +Dec 02 Anniversary Day (Chatham Islands) + +#endif diff --git a/usr.bin/calendar/calendars/calendar.russian b/usr.bin/calendar/calendars/calendar.russian new file mode 100644 index 000000000000..07018766a832 --- /dev/null +++ b/usr.bin/calendar/calendars/calendar.russian @@ -0,0 +1,12 @@ +/* + * Russian calendar files + * + * $FreeBSD$ + */ + +#ifndef _calendar_russian_ +#define _calendar_russian_ + +#include + +#endif /* !_calendar_russian_ */ diff --git a/usr.bin/calendar/calendars/calendar.southafrica b/usr.bin/calendar/calendars/calendar.southafrica new file mode 100644 index 000000000000..ae683b0bd358 --- /dev/null +++ b/usr.bin/calendar/calendars/calendar.southafrica @@ -0,0 +1,23 @@ +/* + * South African holidays + * Note: The Public Holidays Act (Act No 36 of 1994) determines whenever + * any public holiday falls on a Sunday, the Monday following on it shall + * be an unnamed public holiday in addition to the named holiday the day + * before. This file format is not complex enough to reflect this, but + * if it ever is, the change should be made. + * $FreeBSD$ + */ + +#ifndef _calendar_southafrica_ +#define _calendar_southafrica_ + +03/01 Human Rights Day in South Africa +04/27 Freedom Day in South Africa +05/01 Workers Day in South Africa +06/16 Youth Day in South Africa +08/09 National Women's Day in South Africa +09/24 Heritage Day in South Africa +12/16 Day of Reconciliation in South Africa +12/26 Day of Goodwill in South Africa + +#endif diff --git a/usr.bin/calendar/calendars/calendar.ukrainian b/usr.bin/calendar/calendars/calendar.ukrainian new file mode 100644 index 000000000000..3cff8c5a6072 --- /dev/null +++ b/usr.bin/calendar/calendars/calendar.ukrainian @@ -0,0 +1,12 @@ +/* + * Ukrainian calendar files + * + * $FreeBSD$ + */ + +#ifndef _calendar_ukrainian_ +#define _calendar_ukrainian_ + +#include + +#endif /* !_calendar_ukrainian_ */ diff --git a/usr.bin/calendar/calendars/calendar.usholiday b/usr.bin/calendar/calendars/calendar.usholiday new file mode 100644 index 000000000000..8ae0bc019dff --- /dev/null +++ b/usr.bin/calendar/calendars/calendar.usholiday @@ -0,0 +1,42 @@ +/* + * USA holiday + * + * $FreeBSD$ + */ + +#ifndef _calendar_usholiday_ +#define _calendar_usholiday_ + +01/01 New Year's Day +01/14 Julian Calendar New Year's Day +02/02 Groundhog Day +02/14 St. Valentine's Day +02/MonThird President's Day (3rd Monday of February) +03/05 Mother-in-Law Day, USA +03/SunSecond Daylight Savings Time begins in USA; clocks move forward (2nd Sunday of March) +03/17 St. Patrick's Day +03/20* Vernal Equinox +04/01 April Fool's Day +04/15 Income Tax Day, USA. +04/28* Arbor Day, USA (varies from state to state) +05/SunSecond Mother's Day (2nd Sunday of May) +05/SatThird Armed Forces in USA Day (3rd Saturday of May) +05/MonLast Memorial Day in USA (Last Monday of May) +06/SunThird Father's Day (3rd Sunday of June) +06/21* Summer Solstice +07/04 US Independence Day +09/MonFirst Labor Day in USA (1st Monday of September) +09/SunSecond Grandparent's Day in USA (2nd Sunday of September; varies from state to state) +09/22* Autumnal Equinox +10/MonSecond Columbus Day in USA (2nd Monday of October) +10/31 All Hallows Eve (Halloween) +11/05* Election Day in USA (1st Tuesday after 1st Monday for even years) +11/SunFirst Daylight Savings Time ends in USA; clocks move back (1st Sunday of November) +11/11 Veterans' Day +11/ThuFourth Thanksgiving Day (4th Thursday in November) +12/21* Winter Solstice +12/24 Christmas Eve +12/25 Christmas +12/31 New Year's Eve + +#endif /* !_calendar_usholiday_ */ diff --git a/usr.bin/calendar/calendars/calendar.world b/usr.bin/calendar/calendars/calendar.world new file mode 100644 index 000000000000..2b65f1af748f --- /dev/null +++ b/usr.bin/calendar/calendars/calendar.world @@ -0,0 +1,19 @@ +/* + * World wide calendar files, except national calendars + * + * $FreeBSD$ + */ + +#ifndef _calendar_world_ +#define _calendar_world_ + +#include +#include +#include +#include +#include +#include +#include +#include + +#endif /* !_calendar_world_ */ diff --git a/usr.bin/calendar/calendars/de_AT.ISO_8859-15/calendar.feiertag b/usr.bin/calendar/calendars/de_AT.ISO_8859-15/calendar.feiertag new file mode 100644 index 000000000000..fe998f592ae9 --- /dev/null +++ b/usr.bin/calendar/calendars/de_AT.ISO_8859-15/calendar.feiertag @@ -0,0 +1,62 @@ +/* + * Feiertage + * + * $FreeBSD$ + */ + +#ifndef _de_AT_ISO8859_15_feiertag_ +#define _de_AT_ISO8859_15_feiertag_ + +LANG=de_AT.ISO8859-15 + +/* arbeitsfreie staatliche Feiertage */ +01/01 Neujahr +05/01 Staatsfeiertag +10/26 Nationalfeiertag + +/* christliche Feiertage, meist irgendwo arbeitsfrei */ +01/06 Heilige 3 Könige +Easter-2 Karfreitag +Easter Ostersonntag +Easter+1 Ostermontag +Easter+49 Pfingstsonntag +Easter+50 Pfingstmontag +Easter+39 Christi Himmelfahrt +Easter+60 Fronleichnam + +08/15 Mariä Himmelfahrt + +11/01 Allerheiligen +11/02 Allerseelen + +12/08 Mariä Empfängnis +12/24 Heiligabend +12/25 Weihnachten +12/26 Stephanstag +12/31 Silvester + +/* Gedenktage - nicht arbeitsfreie Feiertage */ +02/14 Valentinstag +Easter-46 Aschermittwoch +Easter-7 Palmsonntag +Nov Sun+3 Totensonntag +Nov Sun+4 1. Advent +Dec Sun+1 2. Advent +12/06 Nikolaus +Dec Sun+2 3. Advent +Dec Sun+3 4. Advent + +/* Jahreszeiten */ +03/20* Frühlingsanfang +06/21* Sommeranfang +09/23* Herbstanfang +12/21* Winteranfang + +/* Sommer- und Winterzeit */ +03/SundayLast Anfang der Sommerzeit +10/SundayLast Ende der Sommerzeit + +/* Blumenverkäufer */ +May Sun+2 Muttertag + +#endif /*! _de_AT_ISO8859_15_feiertag_ */ diff --git a/usr.bin/calendar/calendars/de_DE.ISO8859-1/calendar.all b/usr.bin/calendar/calendars/de_DE.ISO8859-1/calendar.all new file mode 100644 index 000000000000..f2a33cc563b2 --- /dev/null +++ b/usr.bin/calendar/calendars/de_DE.ISO8859-1/calendar.all @@ -0,0 +1,17 @@ +/* + * deutscher Kalender + * + * $FreeBSD$ + */ + +#ifndef _de_DE_ISO8859_1_all_ +#define _de_DE_ISO8859_1_all_ + +#include +#include +#include +#include +#include +#include + +#endif /* !_de_DE.ISO8859-1_all_ */ diff --git a/usr.bin/calendar/calendars/de_DE.ISO8859-1/calendar.feiertag b/usr.bin/calendar/calendars/de_DE.ISO8859-1/calendar.feiertag new file mode 100644 index 000000000000..f966c0d085be --- /dev/null +++ b/usr.bin/calendar/calendars/de_DE.ISO8859-1/calendar.feiertag @@ -0,0 +1,56 @@ +/* + * Feiertage + * + * $FreeBSD$ + */ + +#ifndef _de_DE_ISO8859_1_feiertag_ +#define _de_DE_ISO8859_1_feiertag_ + +LANG=de_DE.ISO8859-1 + +/* arbeitsfreie staatliche Feiertage */ +01/01 Neujahr +05/01 Maifeiertag +10/03 Tag der deutschen Einheit + +/* christliche Feiertage, meist irgendwo arbeitsfrei */ +Easter-2 Karfreitag +Easter Ostersonntag +Easter+1 Ostermontag +Easter+49 Pfingstsonntag +Easter+50 Pfingstmontag +Easter+39 Christi Himmelfahrt +Easter+60 Fronleichnam + +08/08 Friedensfest (Augsburg) +08/15 Mariä Himmelfahrt + +10/31 Reformationstag +11/01 Allerheiligen +11/02 Allerseelen +11/Wed+4 Buß- und Bettag + +12/24 Heiligabend +12/25 Erster Weihnachtstag +12/26 Zweiter Weihnachtstag +12/31 Silvester + +/* Gedenktage - nicht arbeitsfreie Feiertage :-( */ +06/17 Arbeiteraufstand am 17. Juni 1953 +01/27 Gedenktag für die Opfer des Nationalsozialismus + +/* Jahreszeiten */ +03/20* Frühlingsanfang +06/21* Sommeranfang +09/23* Herbstanfang +12/21* Winteranfang + +/* Sommer- und Winterzeit */ +03/SundayLast Anfang der Sommerzeit +10/SundayLast Ende der Sommerzeit + +/* Blumenverkäufer */ +May Sun+2 Muttertag + +#endif /*! _de_DE_ISO8859_1_feiertag_ */ diff --git a/usr.bin/calendar/calendars/de_DE.ISO8859-1/calendar.geschichte b/usr.bin/calendar/calendars/de_DE.ISO8859-1/calendar.geschichte new file mode 100644 index 000000000000..684f2af91ca6 --- /dev/null +++ b/usr.bin/calendar/calendars/de_DE.ISO8859-1/calendar.geschichte @@ -0,0 +1,198 @@ +/* + * deutsche Geschichte + * + * + * Die Angaben wurden überwiegend entnommen aus dem Buch: + * + * Fragen an die deutsche Geschichte, Ideen, Kräfte, Entscheidungen von + * 1800 bis zur Gegenwart; historische Ausstellung im Reichstagsgebäude + * in Berlin; Katalog, 16. Auflage, Sonderausgabe - Bonn: Deutscher + * Bundestag, Referat Öffentlichkeitsarbeit, 1990 + * + * English Title: Questions on German history + * + * ISBN 3-924521-59-X + * + * $FreeBSD$ + */ + +#ifndef _de_DE_ISO8859_1_geschichte_ +#define _de_DE_ISO8859_1_geschichte_ + +LANG=de_DE.ISO8859-1 + +/* 1800-1933 */ +07/11 Gründung des Rheinbundes, 1806 +10/14 Doppelschlacht bei Jena und Auerstedt, 1806 +10/16 Völkerschlacht bei Leipzig, 1813 +06/18 Niederlage Napoleons bei Waterloo, 1815 +10/18 Wartburgfest der Deutschen Burschenschaften, 1817 +01/01 Inkrafttreten des Vertrages über den deutschen Zollverein, 1834 +12/07 Erste deutsche Eisenbahn zwischen Nürnberg und Fürth, 1835 +06 Aufstand der schlesischen Weber, 1844 +12/21 Verabschiedung des Gesetzes über die Grundrechte des deutschen + Volkes durch die Frankfurter Nationalversammlung, 1848 +03/27 Annahme der deutschen Reichsverfassung in der Frankfurter + Paulskirche, Wahl von Friedrich Wilhelm IV von Preußen zum + deutschen Kaiser, 1849 +04/28 Ablehnung der deutschen Kaiserkrone durch den preußischen König, 1849 +07/03 Schlacht von Königgrätz +07/13 Emser Depesche, 1870 +07/18 Verkündung des Dogmas von der päpstlichen Unfehlbarkeit + durch das I. Vatikanische Konzil +01/18 Proklamation des deutschen Kaiserreiches in Versailles, 1871 +10/18 Verabschiedung des Sozialistengesetzes durch den Reichstag, 1878 +03/20 Entlassung von Bismarck als Reichskanzler und + preußischer Ministerpräsident, 1890 +06/21 Eröffnung des Nord-Ostsee-Kanals, 1895 +01/07 Billigung des Bürgerlichen Gesetzbuches (BGB) durch den Reichstag, 1896 +01/01 Bürgerliches Gesetzbuch tritt in Kraft, 1900 +06/28 Ermordung des österreichischen Thronfolgers Erzherzog Franz + Ferdinand durch serbische Nationalisten in Sarajewo, 1914 +07/28 Kriegserklärung Österreich-Ungarns an Serbien, 1914 +08/01 Deutsche Mobilmachung und Kriegserklärung an Rußland, 1914 +08/03 Deutsche Kriegserklärung an Frankreich, 1914 +08/04 Kriegserklärung Großbritanniens an Deutschland, 1914 +08/04 Bewilligung der Kriegskredite im Reichstag, 1914 +08/26 Schlacht bei Tannenberg, 1914 +02/21 Schlacht um Verdun, 1916 +03/08 Ausbruch der Revolution in Rußland, Abdankung von Zar Nikolaus II, 1917 +04/06 Kriegserklärung der USA an Deutschland, 1917 +12/15 Waffenstillstand zwisch Rußland und Deutschland, 1917 +03/03 Frieden von Brest-Litowsk, 1918 +11/03 Matrosenaufstand in Kiel, 1918 +11/09 Ausrufung der Republik durch Scheidemann (SPD), 1918 +02/11 Friedrich Ebert wird Reichspräsident, Weimar 1919 +06/28 Unterzeichnung des Versailler Vertrages, 1919 +03/21 Volksabstimmung in Oberschlesien, 1921 +04/16 Vertrag von Rapallo, 1922 +06/24 Ermordung von Reichsaußenminister Rathenau, 1922 +01/11 Besetzung des Ruhrgebietes durch Frankreich und Belgien, 1923 +09/10 Eintritt Deutschlands in den Völkerbund, 1926 +10/25 Schwarzer Freitag in New York, Beginn der Weltwirtschaftskrise, 1929 + + +/* II. Weltkrieg */ +10/14 Austritt Deutschlands aus dem Völkerbund, 1933 +03/16 Wiedereinführung der allgemeinen Wehrpflicht in Deutschland, 1935 +10/25 Deutsch-italienischer Vertrag, Achse Berlin-Rom, 1936 +11/25 Antikominternpakt zwischen Deutschland und Japan, 1936 +01/13 Volksabstimmung im Saargebiet über die Rückführung + ins deutsche Reich, 1935 +03/12 Einmarsch deutscher Truppen in Österreich, 1938 +09/29 Münchner Abkommen, 1938 +03/15 Einmarsch deutscher Truppen in die Tschechoslowakei, 1939 +03/23 Rückgabe des Memelgebietes an Deutschland, 1939 +08/23 Abschluß des Hitler-Stalin-Paktes, 1939 +09/03 Kriegserklärung Großbritanniens und Frankreichs an Deutschland, 1939 +04/09 Deutsche Besetzung Dänemarks, Invasion in Norwegen, 1940 +05/10 Deutscher Angriff auf Belgien, die Niederlande, Luxemburg + und Frankreich, 1940 +06/22 Deutscher Angriff gegen die Sowjetunion, 1941 +12/11 Kriegserklärung Deutschlands an die USA, 1941 +01/14 Konferenz von Casablanca, 1943 +01/31 Kapitulation der 6. deutschen Armee in Stalingrad, 1943 +06/06 Alliierte Landung in Nordwestfrankreich, 1944 +02/04 Konferenz von Jalta, 4.-11.2. 1945 +04/25 Zusammentreffen von amerikanischen und sowjetischen Truppen + bei Torgau an der Elbe, 1945 +05/08 Bedingungslose Kapitulation von Deutschland, 1945 +07/01 Rückzug britischer und amerikanischer Truppen aus Sachsen, Thüringen und + Mecklenburg, Einmarsch westlicher Truppen in Berlin, 1945 +07/17 Potsdamer Konferenz, 1945 +09/01 Deutscher Überfall auf Polen, Beginn des 2. Weltkrieges, 1939 +10/01 Verkündigung der Urteile im Nürnberger Hauptkriegsverbrecherprozeß, 1946 +02/25 Auflösung der Landes Preußen durch den Kontrollrat, 1947 +08/06 Erster Atombombenabwurf auf Hiroshima, 1945 +08/08 Atombombenabwurf auf Nagasaki, 1945 +04/19 Aufstand im Warschauer Ghetto, 1943 +12/07 Japan bombardiert Pearl Harbor, 1941 + +/* Deutschland nach dem 2. Weltkrieg */ +04/11 Attentat auf Dutschke, Studentenunruhen, 1968 +04/26 GAU in Tschernobyl, 1986 +05/05 Natobeitritt, Wiederbewaffnung, Souveränität der Bundesrepublik, 1955 +05/06 Rücktritt von Brandt, 1974 +05/16 Wahl von Schmidt (SPD) zum Bundeskanzler, 1974 +05/23 Verkündung des Grundgesetzes, 1949 +05/23 Wahl von Richard von Weizsäcker zum Bundespräsidenten, 1984 +06/05 Marshallplan, 1947 +06/20 Währungsreform in den Westzonen, 1948 +06/24 Beginn der Berliner Blockade, 1948 +07/01 Wahl von Heinrich Lübke zum Bundespräsidenten, 1959 +07/01 Wirtschafts- und Währungsunion, 1990 +08/12 Deutsch-sowjetischer Gewaltverzichtsvertrag, Moskau 1970 +08/14 Wahl zum ersten deutschen Bundestag, 1949 +09/03 Vier-Mächte-Abkommen über Berlin, 1971 +09/05 Entführung und Ermordung von Arbeitgeberpräsident Schleyer, + Entführung einer Lufthansa-Maschine nach Mogadischu, 1977 +09/07 DDR-Staatsratsvorsitzender Honecker in der Bundesrepublik, 1987 +09/12 Wahl von Theodor Heuss (FDP) zum Bundespräsidenten, 1949 +09/15 Wahl von Konrad Adenauer (CDU) zum Bundeskanzler, 1949 +09/17 Bruch der Sozialliberalen Koalition, 1982 +09/18 Aufnahme von Bundesrepublik und DDR in die UNO, 1973 +10/01 Ablösung von Bundeskanzler Schmidt durch Kohl, 1982 +10/23 Volksabstimmung im Saargebiet, 1955 +12/02 Washingtoner Abkommen über Bi-Zone, 1946 +12/07 Deutsch-polnischer Vertrag, Warschau 1970 +12/10 Friedensnobelpreis für Brandt, 1971 +12/12 Nachrüstungsbeschluß des NATO-Ministerates, 1979 +12/21 Grundlagenvertrag zwischen DDR und Bundesrepublik, 1972 + + +/* Nationalsozialismus */ +11/09 Hitler-Putsch in München/Marsch auf die Feldherrenhalle, 1923 +11/09 Reichskristallnacht, 1938 +09/14 Reichstagswahl: Erdrutsch zugunsten der NSDAP, 1930 +07/31 Reichstagswahl: NSDAP wird stärkste Fraktion, 1932 +11/06 Reichstagswahl: Rückgang der NSDAP, 1932 +01/30 Ernennung von Hitler zum Reichskanzler, 1933 +02/27 Reichstagsbrand, 1933 +03/05 Reichstagswahl: Mehrheit für NSDAP+DNVP, 1933 +03/23 Annahme des Ermächtigungsgesetzes, 1933 +03/31 Erstes Gesetz zur Gleichschaltung der Länder, 1933 +04/01 Organisierter Boykott jüdischer Geschäfte, 1933 +04/07 Zweites Gesetz zur Gleichschaltung der Länder, 1933 +05/02 Auflösung der Gewerkschaften, 1933 +06 Auflösung aller Parteien außer NSDAP, 1933 +07/20 Konkordat zwischen Deutschland und dem Vatikan, 1933 +06/30 Röhm-Putsch, Ausschaltung der SA-Führung, 1934 +09/15 Nürnberger Gesetze, 1935 +01/08 Eröffnung der olympischen Spiele in Berlin, 1936 +01/20 Wannseekonferenz, 1942 +04/30 Selbstmord Hitlers, 1945 +07/29 Mussolini geboren, 1883 + +/* Sozialismus */ +01/21 Lenin gestorben, 1924 +06 Gründung des Bundes der Kommunisten in London + durch Marx und Engels, 1847 +05/23 Gründung des Allgemeinen Deutschen Arbeitervereins in Leipzig + unter Führung von Ferdinand Lassalles, 1863 +08/07 Gründung der Sozialdemokratischen Arbeiterpartei in Eisenach + unter der Führung von August Bebel und Wilhelm Liebknecht, 1869 +04/06 Gründung der Unabhängigen Sozialdemokratischen Partei, Gotha 1917 +11/07 Oktoberrevolution in Rußland, Putsch der Bolschewisten, 1917 +12/31 Gründung der KPD, 1918 +01/15 Ermordung von Rosa Luxemburg und Karl Liebknecht, 1919 +03/05 Tod Stalins, 1953 +03/18 Erste demokratische Volkskammerwahl, 1990 +04/21 Zwangsvereinigung von KPD und SPD zur SED, 1946 +05/14 Gründung der Warschauer Paktes, 1955 +06/17 Arbeiteraufstand am 17. Juni 1953 +06/25 Begin der Korea-Krieges, 1950 +08/13 Bau der Berliner Mauer, 1961 +08/21 Einmarsch des Warschauer Pakts in die Tschechoslowakei, 1968 +10/03 Offizielles Ende der DDR :-), 1990 +10/07 Gründung der DDR, 1949 +10/09 Massendemonstration in Leipzig, 1989 +10/14 Kuba-Krise, 1962 +10/18 Ablösung von Erich Honecker als SED-Generalsekretär, 1989 +11/09 Fall der Berliner Mauer, 1989 +09/09 Mao Tse-Tung gestorben im Alter von 82 Jahren, 1976 +11/10 Sowjetischer Präsident Leonid Breschnew gestorben, Alter 75, 1982 +03/27 Chruschtschow wird sowjetischer Präsident, 1958 +10/12 Chruschtschow schlägt während einer Rede in der UNO mit den + Schuhen auf den Tisch, 1960 + +#endif /* _de_DE_ISO8859_1_geschichte_ */ diff --git a/usr.bin/calendar/calendars/de_DE.ISO8859-1/calendar.kirche b/usr.bin/calendar/calendars/de_DE.ISO8859-1/calendar.kirche new file mode 100644 index 000000000000..02640b115bfb --- /dev/null +++ b/usr.bin/calendar/calendars/de_DE.ISO8859-1/calendar.kirche @@ -0,0 +1,32 @@ +/* + * Kirche in Deutschland + * + * $FreeBSD$ + */ + +#ifndef _de_DE_ISO8859_1_kirche_ +#define _de_DE_ISO8859_1_kirche_ + +LANG=de_DE.ISO8859-1 + +Easter-46 Aschermittwoch +Easter-48 Rosenmontag +Easter-7 Palmsonntag + +11/Sun-3 Volkstrauertag (maybe) +11/Sun-2 Volkstrauertag oder Totensonntag +11/Sun-1 1. Advent oder Totensonntag +12/Sun+1 1. oder 2. Advent +12/Sun+2 2. oder 3. Advent +12/Sun+3 3. oder 4. Advent +12/Sun+4 4. Advent (maybe) + +12/06 Nikolaus +12/25 1. Weihnachtstag +12/26 2. Weihnachtstag + +/* Evangelische Kirche */ +11/10 Martin Luther geboren in Eisleben, 1483 +10/31 95 Thesen von Luther, Wittenberg, 1517 + +#endif /* !_de_DE_ISO8859_1_kirche_ */ diff --git a/usr.bin/calendar/calendars/de_DE.ISO8859-1/calendar.literatur b/usr.bin/calendar/calendars/de_DE.ISO8859-1/calendar.literatur new file mode 100644 index 000000000000..bfa33e66168e --- /dev/null +++ b/usr.bin/calendar/calendars/de_DE.ISO8859-1/calendar.literatur @@ -0,0 +1,54 @@ +/* + * Literatur + * + * $FreeBSD$ + */ + +#ifndef _de_DE_ISO8859_1_literatur_ +#define _de_DE_ISO8859_1_literatur_ + +LANG=de_DE.ISO8859-1 + +/* Schriftsteller + + Fontane + Goethe + Grass + Hegel + Heine + Schiller + */ + +01/04 Jakob Grimm geboren, 1785 +01/18 Arno Schmidt in Hamburg geboren, 1914 +02/09 Thomas Bernhard in Heerlen geboren, 1931 +02/12 Immanuel Kant in Königsberg gestorben, 1804 +02/12 Thomas Bernhard in Gmunden gestorben, 1989 +02/17 Heinrich Heine in Paris gestorben, 1856 +03/22 Johann Wolfgang von Goethe in Weimar gestorben, 1832 +04/22 Kant geboren, 1724 +05/09 Friedrich von Schiller in Weimar gestorben, 1805 +06/03 Arno Schmidt in Celle gestorben, 1979 +06/03 Franz Kafka in Prag gestorben, 1924 +06/06 Thomas Mann in Lübeck geboren, 1875 +07/03 Franz Kafka geboren, 1883 +08/12 Thomas Mann gestorben, 1955 +08/27 Georg Wilhelm Friedrich Hegel in Stuttgart geboren, 1770 +08/28 Johann Wolfgang von Goethe in Frankfurt am Main geboren, 1749 +09/20 Theodor Fontane in Berlin gestorben, 1898 +10/16 Günter Grass in Danzig geboren, 1927 +11/10 Friedrich von Schiller in Marbach geboren, 1759 +11/14 Georg Wilhelm Friedrich Hegel in Berlin gestorben, 1831 +12/13 Heinrich Heine in Düsseldorf geboren, 1797 +12/30 Theodor Fontane in Neuruppin geboren, 1819 + + +/* Verlage */ +03/09 "die tageszeitung" als erste täglich aktualisierte deutsche + Tageszeitung im WWW, 1995, Betatest, vollständige Ausgabe +05/05 Schweriner Volkszeitung als erste deutsche Tageszeitung im WWW, 1995 +05/12 "die tageszeitung" offiziell im WWW, 1995 +08/31 Hitler stellt Frankfurter Zeitung ein, 1943 +11/01 Frankfurter Allgemeine Zeitung in Leben gerufen, 1949 + +#endif /* !_de_DE_ISO8859_1_literatur_ */ diff --git a/usr.bin/calendar/calendars/de_DE.ISO8859-1/calendar.musik b/usr.bin/calendar/calendars/de_DE.ISO8859-1/calendar.musik new file mode 100644 index 000000000000..318969cfe87c --- /dev/null +++ b/usr.bin/calendar/calendars/de_DE.ISO8859-1/calendar.musik @@ -0,0 +1,66 @@ +/* + * Musik + * + * $FreeBSD$ + */ + +#ifndef _de_DE_ISO8859_1_musik_ +#define _de_DE_ISO8859_1_musik_ + +LANG=de_DE.ISO8859-1 + +/* Barock */ +02/23 Georg Friedrich Händel in Halle an der Saale geboren, 1685 +03/14 Georg Philipp Telemann in Magdeburg geboren, 1681 +03/21 Johann Sebastian Bach in Eisenach geboren, 1685 +04/14 Georg Friedrich Händel in London gestorben, 1759 +06/25 Georg Philipp Telemann in Hamburg gestorben, 1767 +07/17 Diderich Buxtehude in Lübeck gestorben, 1707 +07/28 Johann Sebastian Bach in Leipzig gestorben, 1750 + +/* Klassik */ +01/27 Wolfgang Amadeus Mozart in Salzburg geboren, 1756 +01/31 Franz Schubert in Lichtenthal bei Wien geboren, 1797 +02/03 Felix Mendelssohn Bartholdy in Hamburg geboren, 1809 +02/13 Richard Wagner in Venedig gestorben, 1883 +03/01 Frederic Chopin in Zelazowa-Wola bei Warschau geboren, 1810 +03/08 (Louis) Hector Berlioz in Paris gestorben, 1869 +03/25 Bela Bartok in Nagyszentmiklos geboren, 1881 +03/26 Ludwig van Beethoven in Wien gestorben, 1827 +03/28 Sergej Rachmaninow in Beverley Hills gestorben, 1943 +03/29 Carl Orff in München gestorben, 1982 +03/31 Joseph Haydn in Rohrau geboren, 1732 +04/01 Sergej Rachmaninow in Oneg geboren, 1873 +04/03 Johannes Brahms in Wien gestorben, 1897 +05/07 Johannes Brahms in Hamburg geboren, 1833 +05/18 Gustav Mahler in Wien gestorben, 1911 +05/22 Richard Wagner in Leipzig geboren, 1813 +05/31 Joseph Haydn in Wien gestorben, 1809 +06/03 Georges Bizet in Bougival bei Paris gestorben, 1875 +06/05 Carl Maria von Weber in London gestorben, 1826 +06/08 Robert Schumann in Zwickau geboren, 1810 +06/11 Richard Strauss in München geboren, 1864 +06/15 Edvard Grieg in Bergen geboren, 1843 +07/07 Gustav Mahler in Kalischt geboren, 1860 +07/10 Carl Orff in München geboren, 1895 +07/29 Robert Schumann in Endenich bei Bonn gestorben, 1856 +07/31 Franz Liszt in Bayreuth gestorben, 1886 +09/04 Edvard Grieg in Bergen gestorben, 1907 +09/08 Richard Strauss in Garmisch-Partenkirchen gestorben, 1949 +09/26 Bela Bartok in New York gestorben, 1945 +10/17 Frederic Chopin in Paris gestorben, 1849 +10/22 Franz Liszt in Raiding (Ungarn) geboren, 1811 +10/25 Georges Bizet in Paris geboren, 1838 +11/04 Felix Mendelssohn Bartholdy in Leipzig gestorben, 1847 +11/18 Carl Maria von Weber in Eutin geboren, 1786 +11/19 Franz Schubert in Wien gestorben, 1828 +11/26 Paul Hindemith in Hanau geboren, 1895 +12/05 Wolfgang Amadeus Mozart in Wien gestorben, 1791 +12/11 (Louis) Hector Berlioz in La-Côte-Saint-André geboren, 1803 +12/17 Ludwig van Beethoven in Bonn getauft, 1770 +12/28 Paul Hindemith in Frankfurt am Main gestorben, 1963 + +/* Pop */ +09/18 Jimi Hendrix in Paris gestorben, 1970 + +#endif /* !_de_DE_ISO8859_1_musik_ */ diff --git a/usr.bin/calendar/calendars/de_DE.ISO8859-1/calendar.wissenschaft b/usr.bin/calendar/calendars/de_DE.ISO8859-1/calendar.wissenschaft new file mode 100644 index 000000000000..2c7639217df5 --- /dev/null +++ b/usr.bin/calendar/calendars/de_DE.ISO8859-1/calendar.wissenschaft @@ -0,0 +1,19 @@ +/* + * Wissenschaft + * + * $FreeBSD$ + */ + +#ifndef _de_DE_ISO8859_1_wissenschaft_ +#define _de_DE_ISO8859_1_wissenschaft_ + +LANG=de_DE.ISO8859-1 + +04/12 Erster Mann im All, Juri Gagarin, 1961 +04/18 Einstein gestorben, 1955 +06/22 Konrad Zuse geboren in Berlin, 1919 +10/04 Sputnik 1, erster Satellit im Weltraum, 1957 +12/18 Konrad Zuse gestorben in Hünfeld, 1995 + + +#endif /* ! _de_DE_ISO8859_1_wissenschaft_ */ diff --git a/usr.bin/calendar/calendars/fr_FR.ISO8859-1/calendar.all b/usr.bin/calendar/calendars/fr_FR.ISO8859-1/calendar.all new file mode 100644 index 000000000000..785512e543d3 --- /dev/null +++ b/usr.bin/calendar/calendars/fr_FR.ISO8859-1/calendar.all @@ -0,0 +1,14 @@ +/* + * Calendrier français + * + * $FreeBSD$ + */ + +#ifndef _fr_FR_ISO8859_1_all_ +#define _fr_FR_ISO8859_1_all_ + +#include +#include +#include + +#endif /* !_fr_FR.ISO8859-1_all_ */ diff --git a/usr.bin/calendar/calendars/fr_FR.ISO8859-1/calendar.fetes b/usr.bin/calendar/calendars/fr_FR.ISO8859-1/calendar.fetes new file mode 100644 index 000000000000..d80a8757409e --- /dev/null +++ b/usr.bin/calendar/calendars/fr_FR.ISO8859-1/calendar.fetes @@ -0,0 +1,630 @@ +/* + * Fêtes à souhaiter + * + * $FreeBSD$ + */ + +#ifndef _fr_FR_ISO8859_1_fetes_ +#define _fr_FR_ISO8859_1_fetes_ + +LANG=fr_FR.ISO8859-1 + +/* + * N.B.: ceci n'est pas un calendrier liturgique ! + * Il a seulement été réalisé pour me faire payer à boire + * par mes collègues de travail ; on n'y trouve donc que + * des prénoms seuls. + * + * Par ex. « St Antoine de Padoue » se retrouve abrégé en + * Antoine, et si Antoine est fêté plusieurs jours par an, + * tant mieux pour lui, c'est voulu. + */ + +01/01 Aujourd'hui, c'est la St(e) Almaque. +01/01 N'oubliez pas les Télémaque ! +01/02 Bonne fête aux Basile ! +01/02 Aujourd'hui, c'est la St(e) Vassili. +01/02 N'oubliez pas les Grégoire ! +01/03 Bonne fête aux Geneviève ! +01/03 Aujourd'hui, c'est la St(e) Ginette. +01/04 N'oubliez pas les Odilon ! +01/04 Bonne fête aux Angèle ! +01/04 Aujourd'hui, c'est la St(e) Robert. +01/05 N'oubliez pas les Édouard ! +01/05 Bonne fête aux Gerlac ! +01/06 Aujourd'hui, c'est la St(e) Mélaine. +01/06 N'oubliez pas les André ! +01/07 Galette des rois +01/07 Aujourd'hui, c'est la St(e) Raymond. +01/07 N'oubliez pas les Raymonde ! +01/07 Bonne fête aux Virginie ! +01/08 Aujourd'hui, c'est la St(e) Lucien. +01/08 N'oubliez pas les Lucienne ! +01/08 Bonne fête aux Peggy ! +01/08 Aujourd'hui, c'est la St(e) Gudule. +01/09 N'oubliez pas les Adrien ! +01/09 Bonne fête aux Alix ! +01/10 Aujourd'hui, c'est la St(e) Guillaume. +01/10 N'oubliez pas les Guillemette ! +01/11 Bonne fête aux Paulin ! +01/11 Aujourd'hui, c'est la St(e) Pauline. +01/12 N'oubliez pas les Tatiana ! +01/12 Bonne fête aux Alfred ! +01/12 Aujourd'hui, c'est la St(e) Ailred (Aelred, Eilred, Elred). +01/13 N'oubliez pas les Vivant ! +01/13 Bonne fête aux Vivence ! +01/13 Aujourd'hui, c'est la St(e) Hilaire. +01/13 N'oubliez pas les Yvette ! +01/14 Bonne fête aux Nina ! +01/14 Aujourd'hui, c'est la St(e) Séraphin. +01/15 N'oubliez pas les Rémi ! +01/16 Bonne fête aux Marcel ! +01/16 Aujourd'hui, c'est la St(e) Marcelle. +01/16 N'oubliez pas les Marceau ! +01/16 Bonne fête aux Honorat ! +01/17 Aujourd'hui, c'est la St(e) Roseline. +01/17 N'oubliez pas les Antoine ! +01/17 Bonne fête aux Anthony ! +01/18 Aujourd'hui, c'est la St(e) Prisca. +01/18 N'oubliez pas les Libert ! +01/19 Bonne fête aux Marius ! +01/19 Aujourd'hui, c'est la St(e) Canut. +01/20 N'oubliez pas les Fabienne ! +01/20 Bonne fête aux Sébastien ! +01/20 Aujourd'hui, c'est la St(e) Bastien. +01/21 N'oubliez pas les Agnès ! +01/21 Bonne fête aux Fructueux ! +01/21 Aujourd'hui, c'est la St(e) Augure. +01/21 N'oubliez pas les Euloge ! +01/21 Bonne fête aux Avit ! +01/22 Aujourd'hui, c'est la St(e) Vincent. +01/22 N'oubliez pas les Blésille ! +01/23 Bonne fête aux Barnard ! +01/24 Aujourd'hui, c'est la St(e) François. +01/25 N'oubliez pas les Morgane ! +01/26 Bonne fête aux Paule ! +01/26 Aujourd'hui, c'est la St(e) Timothée. +01/26 N'oubliez pas les Tite ! +01/27 Bonne fête aux Angèle ! +01/28 Aujourd'hui, c'est la St(e) Thomas. +01/29 N'oubliez pas les Gildas ! +01/29 Bonne fête aux Sulpice ! +01/30 Aujourd'hui, c'est la St(e) Martine. +01/31 N'oubliez pas les Marcelle ! +01/31 Bonne fête aux Jean ! +02/01 Aujourd'hui, c'est la St(e) Ella. +02/01 N'oubliez pas les Viridiane ! +02/02 Bonne fête aux Théophane ! +02/03 Aujourd'hui, c'est la St(e) Blaise. +02/03 N'oubliez pas les Anschaire ! +02/04 Bonne fête aux Véronique ! +02/04 Aujourd'hui, c'est la St(e) Jeanne. +02/04 N'oubliez pas les Gilbert ! +02/05 Bonne fête aux Agathe ! +02/06 Aujourd'hui, c'est la St(e) Gaston. +02/06 N'oubliez pas les Armand ! +02/07 Bonne fête aux Eugénie ! +02/07 Aujourd'hui, c'est la St(e) Partène. +02/08 N'oubliez pas les Jacqueline ! +02/08 Bonne fête aux Jérôme ! +02/09 Aujourd'hui, c'est la St(e) Apolline. +02/09 N'oubliez pas les Appollonie ! +02/10 Bonne fête aux Arnaud ! +02/10 Aujourd'hui, c'est la St(e) Scholastique. +02/11 N'oubliez pas les Séverin ! +02/11 Bonne fête aux Séverine ! +02/12 Aujourd'hui, c'est la St(e) Félix. +02/12 N'oubliez pas les Eulalie ! +02/13 Bonne fête aux Béatrice ! +02/13 Aujourd'hui, c'est la St(e) Polyeucte. +02/14 N'oubliez pas les Valentin ! +02/14 Bonne fête aux Méthode ! +02/14 Aujourd'hui, c'est la St(e) Cyrille. +02/15 N'oubliez pas les Claude ! +02/15 Bonne fête aux Georgette ! +02/16 Aujourd'hui, c'est la St(e) Julienne. +02/17 N'oubliez pas les Alexis ! +02/18 Bonne fête aux Bernadette et aux Nadine ! +02/19 Aujourd'hui, c'est la St(e) Gabin. +02/20 N'oubliez pas les Aimée ! +02/20 Bonne fête aux Aimé ! +02/20 Aujourd'hui, c'est la St(e) Amata. +02/21 N'oubliez pas les Pierre-Damien ! +02/22 Bonne fête aux Isabelle ! +02/23 Aujourd'hui, c'est la St(e) Lazare. +02/23 N'oubliez pas les Polycarpe ! +02/24 Bonne fête aux Modeste ! +02/25 Aujourd'hui, c'est la St(e) Roméo. +02/25 N'oubliez pas les Avertan ! +02/26 Bonne fête aux Nestor ! +02/27 Aujourd'hui, c'est la St(e) Honorine. +02/27 N'oubliez pas les Gabriel ! +02/28 Bonne fête aux Romain ! +02/28 Aujourd'hui, c'est la St(e) Lupicin. +02/29 N'oubliez pas les Auguste ! +03/01 Bonne fête aux Aubin ! +03/01 Aujourd'hui, c'est la St(e) Albin. +03/02 N'oubliez pas les Charles ! +03/03 Bonne fête aux Guénolé (Gwénolé) ! +03/04 Aujourd'hui, c'est la St(e) Casimir. +03/05 N'oubliez pas les Olive ! +03/05 Bonne fête aux Olivia ! +03/06 Aujourd'hui, c'est la St(e) Colette. +03/06 N'oubliez pas les Nicole ! +03/07 Bonne fête aux Félicité ! +03/07 Aujourd'hui, c'est la St(e) Félicie. +03/07 N'oubliez pas les Perpétue ! +03/08 Bonne fête aux Jean ! +03/09 Aujourd'hui, c'est la St(e) Françoise. +03/10 N'oubliez pas les Vivien ! +03/10 Bonne fête aux Dominique ! +03/11 Aujourd'hui, c'est la St(e) Rosine. +03/12 N'oubliez pas les Justine ! +03/12 Bonne fête aux Maximilien ! +03/13 Aujourd'hui, c'est la St(e) Rodrigue. +03/13 N'oubliez pas les Salomon ! +03/13 Bonne fête aux Euphrasie ! +03/14 Aujourd'hui, c'est la St(e) Mathilde. +03/15 N'oubliez pas les Louise ! +03/16 Bonne fête aux Bénédicte ! +03/16 Aujourd'hui, c'est la St(e) Benoîte. +03/16 N'oubliez pas les Julien ! +03/17 C'est la St Patrick ! +03/17 Aujourd'hui, c'est la St(e) Patrice. +03/18 N'oubliez pas les Cyrille ! +03/19 Bonne fête aux Joseph ! +03/20 Aujourd'hui, c'est la St(e) Herbert. +03/20 N'oubliez pas les Wulfran ! +03/21 Bonne fête aux Clémence ! +03/22 Aujourd'hui, c'est la St(e) Léa. +03/23 N'oubliez pas les Victorien ! +03/23 Bonne fête aux Turibio ! +03/24 Aujourd'hui, c'est la St(e) Catherine. +03/24 N'oubliez pas les Karine ! +03/26 Bonne fête aux Lara ! +03/26 Aujourd'hui, c'est la St(e) Ludger. +03/26 N'oubliez pas les Larissa ! +03/27 Bonne fête aux Habib ! +03/28 Aujourd'hui, c'est la St(e) Gontran. +03/29 N'oubliez pas les Gwladys ! +03/29 Bonne fête aux Eustase ! +03/30 Aujourd'hui, c'est la St(e) Amédée. +03/31 N'oubliez pas les Benjamin ! +03/31 Bonne fête aux Benjamine ! +04/01 Votre fichier calendar est corrompu. +04/01 N'oubliez pas les Hugues ! +04/02 Bonne fête aux Sandrine ! +04/03 Aujourd'hui, c'est la St(e) Richard. +04/04 N'oubliez pas les Isidore ! +04/04 Bonne fête aux Benoît ! +04/05 Aujourd'hui, c'est la St(e) Irène. +04/05 N'oubliez pas les Vincent ! +04/06 Bonne fête aux Marcellin ! +04/06 Aujourd'hui, c'est la St(e) Célestin. +04/06 N'oubliez pas les Guillaume ! +04/07 Bonne fête aux Jean-Baptiste ! +04/07 Aujourd'hui, c'est la St(e) Julienne. +04/08 N'oubliez pas les Perpet ! +04/08 Bonne fête aux Perpetuus ! +04/09 Aujourd'hui, c'est la St(e) Gautier. +04/09 N'oubliez pas les Jean ! +04/10 Bonne fête aux Fulbert ! +04/10 Aujourd'hui, c'est la St(e) Michel. +04/11 N'oubliez pas les Stanislas ! +04/11 Bonne fête aux Gemma ! +04/11 Aujourd'hui, c'est la St(e) Léon. +04/12 N'oubliez pas les Jules ! +04/12 Bonne fête aux Sabas ! +04/13 Aujourd'hui, c'est la St(e) Ida. +04/13 N'oubliez pas les Herménégilde ! +04/14 Bonne fête aux Maxime ! +04/14 Aujourd'hui, c'est la St(e) Lydwine. +04/14 N'oubliez pas les Bénézet ! +04/15 Bonne fête aux Pierre ! +04/16 Aujourd'hui, c'est la St(e) Benoît. +04/17 N'oubliez pas les Anicet ! +04/17 Bonne fête aux Kateri ! +04/18 Aujourd'hui, c'est la St(e) Parfait. +04/19 N'oubliez pas les Emma ! +04/19 Bonne fête aux Elphège ! +04/20 Aujourd'hui, c'est la St(e) Odette. +04/20 N'oubliez pas les Agnès ! +04/21 Bonne fête aux Anselme ! +04/22 Aujourd'hui, c'est la St(e) Alexandre. +04/22 N'oubliez pas les Soter ! +04/22 Bonne fête aux Caïus ! +04/22 Aujourd'hui, c'est la St(e) Léonide. +04/23 N'oubliez pas les Georges ! +04/23 Bonne fête aux Pierre ! +04/24 Aujourd'hui, c'est la St(e) Fidèle. +04/24 N'oubliez pas les Marie-Euphrasie ! +04/25 Bonne fête aux Marc ! +04/26 Aujourd'hui, c'est la St(e) Alida. +04/27 N'oubliez pas les Zita ! +04/27 Bonne fête aux Pierre ! +04/28 Aujourd'hui, c'est la St(e) Valérie. +04/28 N'oubliez pas les Louis-Marie ! +04/28 Bonne fête aux Paul ! +04/29 Aujourd'hui, c'est la St(e) Joseph-Benoît. +04/29 N'oubliez pas les Hugues ! +04/30 Bonne fête aux Robert ! +04/30 Aujourd'hui, c'est la St(e) Catherine. +05/02 N'oubliez pas les Boris ! +05/03 Bonne fête aux Jacques ! +05/03 Aujourd'hui, c'est la St(e) Philippe. +05/04 N'oubliez pas les Sylvain ! +05/05 Bonne fête aux Judith ! +05/06 Aujourd'hui, c'est la St(e) Prudence. +05/07 N'oubliez pas les Gisèle ! +05/09 Bonne fête aux Pacôme ! +05/10 Aujourd'hui, c'est la St(e) Solange. +05/11 N'oubliez pas les Estelle ! +05/12 Bonne fête aux Achille ! +05/14 Aujourd'hui, c'est la St(e) Matthias. +05/15 N'oubliez pas les Denise ! +05/16 Bonne fête aux Honoré ! +05/17 Aujourd'hui, c'est la St(e) Pascal. +05/18 N'oubliez pas les Éric ! +05/19 Bonne fête aux Yves ! +05/19 Aujourd'hui, c'est la St(e) Yvonne. +05/20 N'oubliez pas les Bernardin ! +05/21 Bonne fête aux Constantin ! +05/22 Aujourd'hui, c'est la St(e) Émile. +05/23 N'oubliez pas les Didier ! +05/24 Bonne fête aux Donatien ! +05/25 Aujourd'hui, c'est la St(e) Sophie. +05/26 N'oubliez pas les Bérenger ! +05/28 Bonne fête aux Germain ! +05/29 Aujourd'hui, c'est la St(e) Aymard. +05/30 N'oubliez pas les Ferdinand ! +06/01 Bonne fête aux Justin ! +06/02 Aujourd'hui, c'est la St(e) Blandine. +06/03 N'oubliez pas les Kévin ! +06/04 Bonne fête aux Clotilde ! +06/05 Aujourd'hui, c'est la St(e) Igor. +06/06 N'oubliez pas les Norbert ! +06/07 Bonne fête aux Gilbert ! +06/08 Aujourd'hui, c'est la St(e) Médard. +06/09 N'oubliez pas les Diane ! +06/11 Bonne fête aux Barnabé ! +06/11 Aujourd'hui, c'est la St(e) Yolande. +06/12 N'oubliez pas les Guy ! +06/13 Bonne fête aux Antoine ! +06/14 Aujourd'hui, c'est la St(e) Élisée. +06/15 N'oubliez pas les Germaine ! +06/16 Bonne fête aux Jean-François ! +06/17 Aujourd'hui, c'est la St(e) Hervé. +06/18 N'oubliez pas les Léonce ! +06/19 Bonne fête aux Romuald ! +06/20 Aujourd'hui, c'est la St(e) Silvère. +06/21 N'oubliez pas les Rodolphe ! +06/22 Bonne fête aux Alban ! +06/23 Aujourd'hui, c'est la St(e) Audrey. +06/24 N'oubliez pas les Jean-Baptiste ! +06/25 Bonne fête aux Prosper ! +06/26 Aujourd'hui, c'est la St(e) Anthelme. +06/27 N'oubliez pas les Fernand ! +06/28 Bonne fête aux Irénée ! +06/29 Aujourd'hui, c'est la St(e) Paul. +06/29 N'oubliez pas les Pierre ! +06/30 Bonne fête aux Martial ! +07/01 Aujourd'hui, c'est la St(e) Thierry. +07/02 N'oubliez pas les Martinien ! +07/03 Bonne fête aux Thomas ! +07/04 Aujourd'hui, c'est la St(e) Florent. +07/05 N'oubliez pas les Antoine ! +07/06 Bonne fête aux Mariette ! +07/07 Aujourd'hui, c'est la St(e) Raoul. +07/08 N'oubliez pas les Thibaut ! +07/09 Bonne fête aux Amandine ! +07/10 Aujourd'hui, c'est la St(e) Ulrich. +07/11 N'oubliez pas les Benoît ! +07/12 Bonne fête aux Olivier ! +07/13 Aujourd'hui, c'est la St(e) Henri. +07/13 N'oubliez pas les Joël ! +07/14 Bonne fête aux Camille ! +07/15 Aujourd'hui, c'est la St(e) Donald. +07/17 N'oubliez pas les Caroline ! +07/17 Bonne fête aux Charlotte ! +07/18 Aujourd'hui, c'est la St(e) Frédéric. +07/19 N'oubliez pas les Arsène ! +07/20 Bonne fête aux Marina ! +07/21 Aujourd'hui, c'est la St(e) Victor. +07/22 N'oubliez pas les Marie-Madeleine ! +07/23 Bonne fête aux Brigitte ! +07/24 Aujourd'hui, c'est la St(e) Christine. +07/25 N'oubliez pas les Jacques ! +07/26 Bonne fête aux Anne ! +07/26 Aujourd'hui, c'est la St(e) Joachim. +07/27 N'oubliez pas les Nathalie ! +07/28 Bonne fête aux Samson ! +07/29 Aujourd'hui, c'est la St(e) Marthe. +07/30 N'oubliez pas les Juliette ! +07/31 Bonne fête aux Ignace ! +08/01 Aujourd'hui, c'est la St(e) Alphonse. +08/01 N'oubliez pas les Pierre ! +08/02 Bonne fête aux Julien ! +08/03 Aujourd'hui, c'est la St(e) Lydie. +08/03 N'oubliez pas les Pierre-Julien ! +08/04 Bonne fête aux Jean-Marie ! +08/04 Aujourd'hui, c'est la St(e) Dominique. +08/05 N'oubliez pas les Abel ! +08/05 Bonne fête aux Oswald ! +08/07 Aujourd'hui, c'est la St(e) Gaëtan. +08/08 N'oubliez pas les Dominique ! +08/08 Bonne fête aux Cyriaque ! +08/09 Aujourd'hui, c'est la St(e) Amour. +08/10 N'oubliez pas les Laurent ! +08/11 Bonne fête aux Claire ! +08/11 Aujourd'hui, c'est la St(e) Philomène. +08/12 N'oubliez pas les Clarisse ! +08/13 Bonne fête aux Hyppolite ! +08/13 Aujourd'hui, c'est la St(e) Radegonde. +08/14 N'oubliez pas les Évrard ! +08/14 Bonne fête aux Maximilien ! +08/15 Aujourd'hui, c'est la St(e) Marie. +08/16 N'oubliez pas les Armel ! +08/16 Bonne fête aux Roch ! +08/17 Aujourd'hui, c'est la St(e) Hyacinthe. +08/18 N'oubliez pas les Hélène ! +08/19 Bonne fête aux Jean-Eudes ! +08/19 Aujourd'hui, c'est la St(e) Louis. +08/20 N'oubliez pas les Bernard ! +08/21 Bonne fête aux Christophe ! +08/21 Aujourd'hui, c'est la St(e) Jeanne. +08/22 N'oubliez pas les Fabrice ! +08/22 Bonne fête aux Symphorien ! +08/23 Aujourd'hui, c'est la St(e) Rose. +08/23 N'oubliez pas les Philippe ! +08/24 Bonne fête aux Barthélémy ! +08/25 Aujourd'hui, c'est la St(e) Louis. +08/26 N'oubliez pas les Natacha ! +08/26 Bonne fête aux Zéphirin ! +08/26 Aujourd'hui, c'est la St(e) Eulade. +08/27 N'oubliez pas les Edwige ! +08/27 Bonne fête aux Monique et aux Joseph ! +08/28 Aujourd'hui, c'est la St(e) Augustin. +08/29 N'oubliez pas les Sabine ! +08/30 Bonne fête aux Fiacre ! +08/30 Aujourd'hui, c'est la St(e) Rose. +08/31 N'oubliez pas les Aristide ! +08/31 Bonne fête aux Raymond ! +09/01 Aujourd'hui, c'est la St(e) Gilles. +09/02 N'oubliez pas les Ingrid ! +09/03 Bonne fête aux Grégoire ! +09/04 Aujourd'hui, c'est la St(e) Rosalie. +09/05 N'oubliez pas les Raïssa ! +09/06 Bonne fête aux Bertrand ! +09/07 Aujourd'hui, c'est la St(e) Reine. +09/09 N'oubliez pas les Alain ! +09/10 Bonne fête aux Inès ! +09/11 Aujourd'hui, c'est la St(e) Adelphe. +09/12 N'oubliez pas les Apollinaire ! +09/13 Bonne fête aux Aimé ! +09/15 Aujourd'hui, c'est la St(e) Roland. +09/16 N'oubliez pas les Édith ! +09/17 Bonne fête aux Renaud ! +09/18 Aujourd'hui, c'est la St(e) Nadège. +09/19 N'oubliez pas les Émilie ! +09/20 Bonne fête aux Davy ! +09/21 Aujourd'hui, c'est la St(e) Matthieu. +09/22 N'oubliez pas les Maurice ! +09/23 Bonne fête aux Constant ! +09/24 Aujourd'hui, c'est la St(e) Thècle. +09/25 N'oubliez pas les Hermann ! +09/26 Bonne fête aux Côme ! +09/26 Aujourd'hui, c'est la St(e) Damien. +09/27 N'oubliez pas les Vincent ! +09/28 Bonne fête aux Venceslas ! +09/29 Aujourd'hui, c'est la St(e) Michel. +09/29 N'oubliez pas les Raphaël ! +09/30 Bonne fête aux Jérôme ! +10/01 Aujourd'hui, c'est la St(e) Thérèse. +10/02 N'oubliez pas les Léger ! +10/03 Bonne fête aux Gérard ! +10/04 Aujourd'hui, c'est la St(e) François. +10/05 N'oubliez pas les Placide ! +10/05 Bonne fête aux Fleur ! +10/05 Aujourd'hui, c'est la St(e) Flore. +10/05 N'oubliez pas les Pâquerette ! +10/05 Bonne fête aux Violette ! +10/05 Aujourd'hui, c'est la St(e) Pervenche. +10/05 N'oubliez pas les Anémone ! +10/05 Bonne fête aux Bluette ! +10/05 Aujourd'hui, c'est la St(e) Capucine. +10/05 N'oubliez pas les Dahlia ! +10/05 Bonne fête aux Myrtille ! +10/05 Aujourd'hui, c'est la St(e) Hortense. +10/05 N'oubliez pas les Violaine ! +10/05 Bonne fête aux Anne-Aymone ! +10/05 Aujourd'hui, c'est la St(e) Dalie. +10/06 N'oubliez pas les Bruno ! +10/06 Bonne fête aux Foy ! +10/07 Aujourd'hui, c'est la St(e) Serge. +10/08 N'oubliez pas les Pélagie ! +10/26 Bonne fête aux Démétrius ! +10/09 Aujourd'hui, c'est la St(e) Denis. +10/09 N'oubliez pas les Denys ! +10/10 Bonne fête aux Ghislain ! +10/10 Aujourd'hui, c'est la St(e) Ghislaine. +10/10 N'oubliez pas les Guislain ! +10/10 Bonne fête aux Guislaine ! +10/11 Aujourd'hui, c'est la St(e) Firmin. +10/11 N'oubliez pas les Gausbert ! +10/12 Bonne fête aux Wilfried ! +10/12 Aujourd'hui, c'est la St(e) Séraphin. +10/13 N'oubliez pas les Géraud ! +10/14 Bonne fête aux Juste ! +10/14 Aujourd'hui, c'est la St(e) Calliste. +10/15 N'oubliez pas les Thérèse ! +10/16 Bonne fête aux Edwige ! +10/16 Aujourd'hui, c'est la St(e) Marie-Marguerite. +10/17 N'oubliez pas les Baudoin ! +10/17 Bonne fête aux Ignace ! +10/18 Aujourd'hui, c'est la St(e) Luc. +10/19 N'oubliez pas les René ! +10/20 Bonne fête aux Adeline ! +10/20 Aujourd'hui, c'est la St(e) Aline. +10/20 N'oubliez pas les Line ! +10/21 Bonne fête aux Céline ! +10/21 Aujourd'hui, c'est la St(e) Hilarion. +10/22 N'oubliez pas les Élodie ! +10/22 Bonne fête aux Nunillon ! +10/22 Aujourd'hui, c'est la St(e) Salomé. +10/23 N'oubliez pas les Jean ! +10/24 Bonne fête aux Florentin ! +10/25 Aujourd'hui, c'est la St(e) Crépin. +10/25 N'oubliez pas les Crépinien ! +10/25 Bonne fête aux Chrysanthe ! +10/25 Aujourd'hui, c'est la St(e) Darie. +10/25 N'oubliez pas les Enguerran ! +10/26 Bonne fête aux Dimitri ! +10/26 Aujourd'hui, c'est la St(e) Évariste. +10/27 N'oubliez pas les Émeline ! +10/27 Bonne fête aux Didier ! +10/27 Aujourd'hui, c'est la St(e) Frumence. +10/28 N'oubliez pas les Jude ! +10/28 Bonne fête aux Judas ! +10/28 Aujourd'hui, c'est la St(e) Thaddée. +10/28 N'oubliez pas les Simon ! +10/28 Bonne fête aux Simone (Simonne) ! +10/29 Aujourd'hui, c'est la St(e) Narcisse. +10/30 N'oubliez pas les Bienvenue ! +10/30 Bonne fête aux Dorothée ! +10/31 Aujourd'hui, c'est la St(e) Quentin. +10/31 N'oubliez pas les Alphonse ! +10/31 Bonne fête aux Wolfgang ! +11/03 Aujourd'hui, c'est la St(e) Hubert. +11/04 N'oubliez pas les Charles ! +11/04 Bonne fête aux Amans ! +11/05 Aujourd'hui, c'est la St(e) Sylvie. +11/05 N'oubliez pas les Sylvette ! +11/05 Bonne fête aux Sylviane ! +11/05 Aujourd'hui, c'est la St(e) Zacharie. +11/05 N'oubliez pas les Élisabeth ! +11/06 Bonne fête aux Bertille ! +11/06 Aujourd'hui, c'est la St(e) Léonard. +11/06 N'oubliez pas les Winnoc ! +11/07 Bonne fête aux Carine ! +11/07 Aujourd'hui, c'est la St(e) Karine. +11/07 N'oubliez pas les Ernest ! +11/07 Bonne fête aux Ernst ! +11/07 Aujourd'hui, c'est la St(e) Willibrord. +11/08 N'oubliez pas les Geoffroy ! +11/09 Bonne fête aux Théodore ! +11/10 Aujourd'hui, c'est la St(e) Léon. +11/10 N'oubliez pas les Léontine ! +11/10 Bonne fête aux Lionel ! +11/11 Aujourd'hui, c'est la St(e) Martin. +11/12 N'oubliez pas les Christian ! +11/12 Bonne fête aux Josaphat ! +11/13 Aujourd'hui, c'est la St(e) Brice. +11/13 N'oubliez pas les Diégo ! +11/13 Bonne fête aux Didace ! +11/14 Aujourd'hui, c'est la St(e) Sidoine. +11/14 N'oubliez pas les Sidonie ! +11/14 Bonne fête aux Sérapion ! +11/15 Aujourd'hui, c'est la St(e) Albert. +11/16 N'oubliez pas les Marguerite ! +11/16 Bonne fête aux Gertrude ! +11/17 Aujourd'hui, c'est la St(e) Élisabeth. +11/17 N'oubliez pas les Élise ! +11/17 Bonne fête aux Lise ! +11/18 Aujourd'hui, c'est la St(e) Aude. +11/19 N'oubliez pas les Tanguy ! +11/19 Bonne fête aux Tanneguy ! +11/19 Aujourd'hui, c'est la St(e) Mechtilde. +11/19 N'oubliez pas les Mathilde ! +11/19 Bonne fête aux Patrocle ! +11/20 Aujourd'hui, c'est la St(e) Edmond. +11/20 N'oubliez pas les Octave ! +11/20 Bonne fête aux Adventor ! +11/20 Aujourd'hui, c'est la St(e) Solutor. +11/20 N'oubliez pas les Ambroise ! +11/20 Bonne fête aux Rutus ! +11/22 Aujourd'hui, c'est la St(e) Cécile. +11/22 N'oubliez pas les Célia ! +11/23 Bonne fête aux Clément ! +11/23 Aujourd'hui, c'est la St(e) Clémentine. +11/23 N'oubliez pas les Colomban ! +11/24 Bonne fête aux Augusta ! +11/24 Aujourd'hui, c'est la St(e) Flora. +11/25 N'oubliez pas les Catherine ! +11/24 Bonne fête aux Maria ! +11/26 Aujourd'hui, c'est la St(e) Delphine. +11/26 N'oubliez pas les Elzéar ! +11/27 Bonne fête aux Séverin ! +11/27 Aujourd'hui, c'est la St(e) Séverine. +11/27 N'oubliez pas les Maxime ! +11/28 Bonne fête aux Jacques ! +11/29 Aujourd'hui, c'est la St(e) Saturnin. +11/29 N'oubliez pas les Sernin (Cernin) ! +11/29 Bonne fête aux Savourin ! +11/29 Aujourd'hui, c'est la St(e) Sornin. +11/30 N'oubliez pas les André ! +11/30 Bonne fête aux Andréa ! +12/01 Aujourd'hui, c'est la St(e) Florence. +12/01 N'oubliez pas les Éloi ! +12/01 Bonne fête aux Airy ! +12/02 Aujourd'hui, c'est la St(e) Viviane. +12/03 N'oubliez pas les François-Xavier ! +12/03 Bonne fête aux Xavier ! +12/03 Aujourd'hui, c'est la St(e) Eugène. +12/04 N'oubliez pas les Barbara ! +12/04 Bonne fête aux Barbe ! +12/05 Aujourd'hui, c'est la St(e) Gérald. +12/05 N'oubliez pas les Géraldine ! +12/05 Bonne fête aux Géraud ! +12/05 Aujourd'hui, c'est la St(e) Sabas. +12/06 N'oubliez pas les Nicolas ! +12/07 Bonne fête aux Ambroise ! +12/09 Aujourd'hui, c'est la St(e) Pierre. +12/10 N'oubliez pas les Romaric ! +12/10 Bonne fête aux Eulalie ! +12/10 Aujourd'hui, c'est la St(e) Melchaide. +12/10 N'oubliez pas les Miltiade ! +12/11 Bonne fête aux Daniel ! +12/11 Aujourd'hui, c'est la St(e) Damase. +12/12 N'oubliez pas les Chantal ! +12/13 Bonne fête aux Lucie ! +12/13 Aujourd'hui, c'est la St(e) Rolande. +12/13 N'oubliez pas les Aurore ! +12/14 Bonne fête aux Odile ! +12/15 Aujourd'hui, c'est la St(e) Ninon. +12/15 N'oubliez pas les Nina ! +12/15 Bonne fête aux Christiane ! +12/15 Aujourd'hui, c'est la St(e) Christina. +12/16 N'oubliez pas les Alice ! +12/16 Bonne fête aux Adélaïde ! +12/16 Aujourd'hui, c'est la St(e) Évrard. +12/16 N'oubliez pas les Éberhard ! +12/17 Bonne fête aux Gaël ! +12/17 Aujourd'hui, c'est la St(e) Lazare. +12/17 N'oubliez pas les Olympe ! +12/17 Bonne fête aux Olympias ! +12/17 Aujourd'hui, c'est la St(e) Judicaël. +12/18 N'oubliez pas les Gatien ! +12/18 Bonne fête aux Winebald ! +12/19 Aujourd'hui, c'est la St(e) Urbain. +12/20 N'oubliez pas les Abraham ! +12/20 Bonne fête aux Théophile ! +12/21 Aujourd'hui, c'est la St(e) Pierre. +12/22 N'oubliez pas les Françoise-Xavière ! +12/22 Bonne fête aux Flavien ! +12/23 Aujourd'hui, c'est la St(e) Armand. +12/24 N'oubliez pas les Adèle ! +12/24 Bonne fête aux Charbel ! +12/25 Aujourd'hui, c'est la St(e) Emmanuel. +12/25 N'oubliez pas les Emmanuelle ! +12/25 Bonne fête aux Noël ! +12/26 Aujourd'hui, c'est la St(e) Étienne. +12/26 N'oubliez pas les Stéphane ! +12/26 Bonne fête aux Stéphanie ! +12/27 Aujourd'hui, c'est la St(e) Jean. +12/27 N'oubliez pas les Yann ! +12/28 Bonne fête aux Innocents ! +12/29 Aujourd'hui, c'est la St(e) David. +12/30 N'oubliez pas les Roger ! +12/31 Bonne fête aux Sylvestre ! + +#endif /*! _fr_FR_ISO8859_1_fetes */ diff --git a/usr.bin/calendar/calendars/fr_FR.ISO8859-1/calendar.french b/usr.bin/calendar/calendars/fr_FR.ISO8859-1/calendar.french new file mode 100644 index 000000000000..18b4d8ae8a94 --- /dev/null +++ b/usr.bin/calendar/calendars/fr_FR.ISO8859-1/calendar.french @@ -0,0 +1,12 @@ +/* + * French calendar file(s) + * + * $FreeBSD$ + */ + +#ifndef _calendar_french_ +#define _calendar_french_ + +#include + +#endif /* !_calendar_french_ */ diff --git a/usr.bin/calendar/calendars/fr_FR.ISO8859-1/calendar.jferies b/usr.bin/calendar/calendars/fr_FR.ISO8859-1/calendar.jferies new file mode 100644 index 000000000000..48867ac42dc1 --- /dev/null +++ b/usr.bin/calendar/calendars/fr_FR.ISO8859-1/calendar.jferies @@ -0,0 +1,46 @@ +/* + * Jours fériés + * + * $FreeBSD$ + */ + +#ifndef _fr_FR_ISO8859_1_jferies_ +#define _fr_FR_ISO8859_1_jferies_ + +LANG=fr_FR.ISO8859-1 + +/* Jours chômés */ +01/01 Nouvel an +05/01 Fête du travail +05/08 Armistice 1945 +07/14 Fête nationale française +11/11 Armistice 1918 + +/* Jours fériés religieux */ +Easter Pâques +Easter+1 Lundi de Pâques +Easter+39 Ascension +Easter+49 Pentecôte +Easter+50 Lundi de Pentecôte +08/15 Assomption +11/01 Toussaint +12/25 Noël + +/* Les dates suivantes ne sont malheureusement pas fériées... */ + +/* Saisons */ +03/21* Printemps +06/21* Été +09/21* Automne +12/21* Hiver + +/* Changements d'heure */ +03/SundayLast Passage à l'heure d'été +10/SundayLast Passage à l'heure d'hiver + +/* Divers */ +/* BUG : si Penteco^te = 05/SunLast, fe^te des me`res repousse'e d'une semaine */ +05/SundayLast Fêtes des mères +June Sun+3 Fêtes des pères + +#endif /*! _fr_FR_ISO8859_1_jferies_ */ diff --git a/usr.bin/calendar/calendars/fr_FR.ISO8859-1/calendar.proverbes b/usr.bin/calendar/calendars/fr_FR.ISO8859-1/calendar.proverbes new file mode 100644 index 000000000000..5a9f0eaf13aa --- /dev/null +++ b/usr.bin/calendar/calendars/fr_FR.ISO8859-1/calendar.proverbes @@ -0,0 +1,354 @@ +/* + * Proverbes liés au calendrier + * + * $FreeBSD$ + */ + +#ifndef _fr_FR_ISO8859_1_proverbes_ +#define _fr_FR_ISO8859_1_proverbes_ + +LANG=fr_FR.ISO8859-1 + +/* Janvier */ +01/01 Calme et claire nuit de l'an + À bonne année donne l'élan. +01/02 Janvier d'eau chiche + Fait le paysan riche. +01/04 Un mois de janvier sans gelée + N'amène jamais une bonne année. +01/06 Pluie aux Rois, + Blé jusqu'au toit. +01/08 Janvier sec et sage + Est un bon présage. +01/09 Saint Julien brise la glace ; + S'il ne la brise, c'est qu'il l'embrasse. +01/10 Beau temps à la saint Guillaume + Donne plus de blé que de chaume. +01/13 Soleil au jour de saint Hilaire, + Fends du bois pour ton hiver. +01/14 Pingouin dans les champs, + Hiver méchant. +01/15 S'il gèle à la saint Maur, + La moitié de l'hiver est dehors. +01/18 À la saint Pierre, + L'hiver s'en va ou se resserre. +01/20 S'il gèle à la saint Sébastien, + L'hiver s'en va ou revient. +01/22 Pour saint Vincent, + L'hiver perd ses dents + Ou les retrouve pour longtemps. +01/24 S'il tonne en janvier, + Monte les barriques au grenier. +01/25 Le jour de saint Paul, + L'hiver se rompt le col. +01/31 Janvier fait le péché, + Mars en est accusé. + +/* Février */ +02/01 À la saint Ignace, + L'eau est de glace. +02/02 Chandeleur claire, hiver derrière ; + Chandeleur trouble, hiver redouble. +02/03 À la saint Blaise, + L'hiver s'apaise, + Mais s'il redouble et s'il reprend, + Longtemps après on s'en ressent. +02/05 Pour la sainte Agathe, sème ton oignon, + Fût-il dans la glace, il deviendra bon. +02/09 À la sainte Apolline + Bien souvent l'hiver nous quitte. +02/12 Si le soleil rit à la sainte Eulalie, + Pommes et cidre à la folie. +02/14 À la saint Valentin, + Tous les vents sont marins. +02/16 Pluie de février + À la terre vaut du fumier. +02/18 Février trop doux, + Printemps en courroux. +02/20 La neige de février + Brûle le blé. +02/22 Neige à la sainte Isabelle + Fait la fleur plus belle. +02/24 Saint Mathias + Casse la glace ; + S'il n'y en a pas, + Il en fera. +02/27 Gelée de la sainte Honorine + Rend toute la vallée chagrine. +02/28 Fleur de février + Va mal au pommier. + +/* Mars */ +03/01 Taille à la saint Aubin + Donnera de gros raisins. +03/02 Quand mars mouillera, + Bien du vin tu auras. +03/03 Soit au début, soit à la fin, + Mars nous montre son venin. +03/06 À la sainte Colette + Commence à chanter l'alouette. +03/08 Quand en mars il tonne, + L'année sera bonne. +03/10 Mars venteux, + Vergers pommeux. +03/12 À la saint Grégoire, + Il faut tailler la vigne pour boire. +03/13 Poussière de mars + Est poussière d'or... +03/15 Pluie de mars grandit l'herbette + Et souvent annonce disette. +03/17 S'il fait doux à la saint Patrice, + De leurs trous sortent les écrevisses. +03/19 Pour saint Joseph, + L'hirondelle va et vient. +03/21 S'il pleut à la saint Benoît, + Il pleut trente-sept jours plus trois. +03/23 Quand à glace il gèle à la saint Victorien, + En pêches et en abricots il n'y a rien. +03/25 Quand fleurs en mars il y aura, + Guère de fruits ne mangeras. +03/28 À la saint Gontran, si la température est belle, + Arrivent les premières hirondelles. +03/30 Quand mars se déguise en été, + Avril prend ses habits fourrés. +03/31 À la saint Benjamin, + Le mauvais temps prend fin. + +/* Mobiles */ +Easter-7 Le propre jour des Rameaux + Sème oignons et poireaux. +Easter-3 La gelée du jeudi saint + Gèle le sarrasin. +Easter-2 Gelée du vendredi saint + Gèle le pain et le vin. +Easter S'il pleut à Pâques, + Il pleut pendant quarante jours. +Easter Pâques en mars, + Pestes, guerres ou famines. +Easter+36 Haricots de rogations + Rendent à foison. +Easter+37 Belles rogations, + Belles moissons. +Easter+39 S'il pleut à l'Ascension, + Tout va en perdition. +Easter+49 La Pentecôte + Donne les fruits, ou les ôte. +Easter+56 S'il pleut à la Trinité, + Il pleut tous les jours de l'année. + +/* Avril */ +04/01 Avril entrant, + Coucou chantant, + Sonnailles tintant. +04/05 Avril fait la fleur, + Mai en a l'honneur. +04/10 Il n'est point d'avril si beau + Qu'il n'ait de neige à son chapeau. +04/15 En avril, ne te découvre pas d'un fil ; + En mai, fais ce qu'il te plaît ; + En juin, de trois habits n'en garde qu'un. +04/17 Orage en avril, + Prépare tes barrils. +04/19 À la sainte Léonide + Chaque blé pousse rapide. +04/22 Pluie à la sainte Opportune, + Ni cerises ni prunes. +04/23 À la saint Georges, + Sème ton orge, + À la saint Marc, + Il est trop tard. +04/25 À la saint Marc, s'il tombe de l'eau, + Il n'y aura pas de fruits à couteau. +04/28 Avril pluvieux et mai venteux + Ne rendent pas le paysan disetteux. +04/30 La pluie à la saint Robert + De bon vin emplira ton verre. + +/* Mai */ +05/03 Les trois saints au sang de navet, + Pancrace, Mamert et Servais, + Sont bien nommés les saints de glace, + Mamert, Servais et Pancrace. +05/15 À la sainte Denise, + Le froid n'en fait plus à sa guise. +05/16 À la saint Honoré, + S'il fait gelée, + Le vin diminue de moitié. +05/18 Bon fermier à sainte Juliette + Doit vendre ses poulettes. +05/22 Beau temps à la sainte Émilie + Donne du fruit à la folie. +05/23 Qui sème haricots à la saint Didier + Les arrachera à poignées. + +/* Juin */ +06/08 S'il pleut à la saint Médard, + Il pleut quarante jours plus tard, + À moins que saint Barnabé + Ne vienne l'arrêter. +06/11 À la saint Barnabé, + Fauche ton pré. +06/16 Si le jour de saint Fargeau + La lune se fait dans l'eau, + Le reste du mois est beau. +06/19 S'il pleut à la saint Gervais, + Il pleut quarante jours après. +06/20 Pluie d'orage à la saint Sylvère, + C'est beaucoup de vin dans le verre. +06/24 S'il pleut à la saint Jean, + Guère de vin ni de pain. +06/25 Après la saint Jean, si le coucou chante, + L'année sera rude et méchante. +06/29 S'il pleut la veille de la saint Pierre, + La vigne est réduite du tiers. + +/* Juillet */ +07/02 S'il pleut à la Visitation, + Pluie à discrétion. +07/03 À la saint Anatole, + Confiture dans la casserole. +07/06 Juillet sans orage, + Famine au village. +07/10 Petite pluie de juillet ensoleillé + Emplit caves et greniers. +07/13 Quand reviendra la saint Henri, + Tu planteras ton céleri. +07/16 Qui veut des beaux navets + Les sème en juillet. +07/20 À la sainte Marguerite, pluie + Jamais au paysan ne souris ; + Mais pluie à la sainte Anne, + Pour lui c'est de la manne. +07/21 S'il pleut à la saint Victor, + La récolte n'est pas d'or. +07/22 S'il pleut à la sainte Madeleine, + Il pleuvra durant six semaines. +07/25 Si saint jacques est serein, + L'hiver sera dû et serein. +07/26 Pour la sainte Anne, s'il pleut, + Trente jours seront pluvieux. + +/* Août */ +August Sun+2 En août et vendanges, il n'y a ni fêtes ni dimanches. +08/02 S'il pleut au mois d'août, + Les truffes sont au bout. +08/04 Août donne goût. +08/06 Soleil rouge en août, + C'est de la pluie partout. +08/10 Qui sème à la saint Laurent + Y perd la graine et puis le temps. +08/13 S'il pleut à la sainte Radegonde, + Misère abonde sur le monde. +08/15 Pluie de l'Assomption, + Huit jours de mouillon. +08/16 De saint Roch la grande chaleur + Prépare du vin la couleur. +08/18 Temps trop beau en août + Annonce hiver en courroux. +08/20 Brumes d'août font passer les châtaignes. +08/22 Jamais d'août la sécheresse + N'amènera la richesse. +08/24 À la saint Barthélémy, + Paie to dû. +08/28 Fine pluie à la saint Augustin, + C'est comme s'il pleuvait du vin. +08/29 Quand les hirondelles voient la saint Michel, + L'hiver ne vient qu'à Noël. + +/* Septembre */ +09/01 Pluie de la saint Gilles ruine les glands. +09/05 Septembre humide, + Pas de tonneau vide. +09/11 Tu peux semer sans crainte + Quand arrive la saint Hyacinthe. +09/15 La rosée de saint Albin + est, dit-on, rosée de vin. +09/19 Qui sème à la saint Janvier + De l'an récolte le premier. +09/21 Si Matthieu pleure au lieu de rire, + Le vin en vinaigre vire. +09/22 Semis de saint Maurice, + Récolte à ton caprice. +09/23 Septembre se nomme + Le mai de l'automne. +09/25 À la saint Firmin + L'hiver est en chemin. +09/29 Pluie de saint Michel sans orage + D'un hiver doux est le présage. +09/30 À la saint Jérôme, + Hoche tes pommes. + +/* Octobre */ +10/02 À la saint Léger, + Faut s'purger ! +10/04 Sème à la saint François, + Ton blé aura plus de poids. +10/09 Beau temps à la saint Denis, + Hiver pourri. +10/13 En octobre, qui ne fume rien + Ne récolte rien. +10/16 Coupe ton chou à la saint Gall, + En hiver c'est un régal. +10/18 À la saint Luc, sème dru, + Ou ne sème plus. +10/23 Gelée d'octobre + Rend le vigneron sobre. +10/25 Pour saint Crépin, mort aux mouches. +10/28 À la sainte Simone, + Il faut avoir rentré ses pommes. +10/31 Quand octobre prend sa fin, + Dans la cave est le vin. + +/* Novembre */ +11/01 À la Toussaint commence l'été de la saint Martin. +11/02 Telle Toussaint, tel Noël, + Et Pâques pareil. +11/04 À la saint Charles, + La gelée parle. +11/08 En novembre, s'il tonne, + L'année sera bonne. +11/11 Si l'hiver va droit son chemin, + Vous l'aurez à la saint Martin, + Mais s'il trouve quelque encombrée, + Vous l'aurez à la saint André. +11/11 Tue ton cochon à la saint Martin + Et invite ton voisin. +11/19 Sainte Élisabeth nous montre quel bonhomme sera l'hiver. +11/22 Pour sainte Cécile, + Chaque haricot en fait mille. +11/23 Quand l'hiver vient doucement, + Il est là à la saint Clément. +11/25 Sainte Catherine, toute fille veut la fêter, + Mais aucune ne veut la coiffer. +11/25 Quand sainte Catherine au ciel fait la moue, + Il faut patauger longtemps dans la boue. +11/30 Quand l'hiver n'est pas pressé, + Il arrive à la saint André. + +/* Décembre */ +12/SundayFirst Tel avent, + Tel printemps. +12/06 Neige de saint Nicolas + Donne froid pour trois mois. +12/07 À la saint Ambroise, + Du froid pour huit jours. +12/10 À la sainte Julie, + Le soleil ne quitte pas son lit. +12/13 À la sainte Luce, + Le jour croît du saut d'une puce. +12/16 Décembre de froid trop chiche + Ne fait pas le paysan riche. +12/21 S'il gèle à la saint Thomas, + Il gèlera encore trois mois. +12/23 Le tonnerre en décembre + Annonce pour l'an qui vient + Aux bêtes et aux gens + Abondance de biens. +12/25 Noël au balcon, + Pâques au tison. +12/26 À la saint Étienne, + Chacun trouve la sienne. +12/28 Les jours entre Noël et les Rois + Indiquent le temps des douze mois. + +#endif /*! _fr_FR_ISO8859_1_proverbes_ */ diff --git a/usr.bin/calendar/calendars/hr_HR.ISO8859-2/calendar.all b/usr.bin/calendar/calendars/hr_HR.ISO8859-2/calendar.all new file mode 100644 index 000000000000..8c4591092d01 --- /dev/null +++ b/usr.bin/calendar/calendars/hr_HR.ISO8859-2/calendar.all @@ -0,0 +1,12 @@ +/* + * hrvatski calendar + * + * $FreeBSD$ + */ + +#ifndef _hr_HR_ISO8859_2_all_ +#define _hr_HR_ISO8859_2_all_ + +#include + +#endif /* !_hr_HR_ISO8859_2_all_ */ diff --git a/usr.bin/calendar/calendars/hr_HR.ISO8859-2/calendar.praznici b/usr.bin/calendar/calendars/hr_HR.ISO8859-2/calendar.praznici new file mode 100644 index 000000000000..491ec6a4f3f3 --- /dev/null +++ b/usr.bin/calendar/calendars/hr_HR.ISO8859-2/calendar.praznici @@ -0,0 +1,44 @@ +/* + * hrvatski praznici + * + * $FreeBSD$ + */ + +#ifndef _hr_HR_ISO8859_2_praznici_ +#define _hr_HR_ISO8859_2_praznici_ + +LANG=hr_HR.ISO8859-2 + +/* dr¾avni praznici */ +01/01 Nova godina +01/06 Bogojavljenje ili Sveta tri kralja +Easter Uskrs +Easter+1 Uskrsni ponedjeljak +05/01 Praznik rada +Easter+60 Tijelovo +06/22 Dan antifa¹istièke borbe +06/25 Dan dr¾avnosti +08/05 Dan pobjede i domovinske zahvalnosti i Dan hrvatskih branitelja +08/15 Velika Gospa +10/08 Dan neovisnosti +11/01 Svi sveti +12/25 Bo¾iæ +12/26 Sveti Stjepan + +/* katolièki blagdani */ +Easter-2 Veliki petak +Easter+39 Uza¹a¹æe +Easter+49 Duhovi +Easter+50 Duhovni ponedjeljak + +/* godi¹nja doba */ +03/21* Poèetak proljeæa +06/21* Poèetak ljeta +09/23* Poèetak jeseni +12/21* Poèetak zime + +/* ljetno vrijeme */ +03/NedjeljaLast Poèetak ljetnog vremena +10/NedjeljaLast Kraj ljetnog vremena + +#endif /* !_hr_HR_ISO8859_2_praznici_ */ diff --git a/usr.bin/calendar/calendars/hu_HU.ISO8859-2/calendar.all b/usr.bin/calendar/calendars/hu_HU.ISO8859-2/calendar.all new file mode 100644 index 000000000000..5084dc7295b6 --- /dev/null +++ b/usr.bin/calendar/calendars/hu_HU.ISO8859-2/calendar.all @@ -0,0 +1,13 @@ +/* + * Magyar kalendárium + * + * $FreeBSD$ + */ + +#ifndef _hu_HU_ISO8859_2_all_ +#define _hu_HU_ISO8859_2_all_ + +#include +#include + +#endif /* !_hu_HU.ISO8859-2_all_ */ diff --git a/usr.bin/calendar/calendars/hu_HU.ISO8859-2/calendar.nevnapok b/usr.bin/calendar/calendars/hu_HU.ISO8859-2/calendar.nevnapok new file mode 100644 index 000000000000..f85c0840d910 --- /dev/null +++ b/usr.bin/calendar/calendars/hu_HU.ISO8859-2/calendar.nevnapok @@ -0,0 +1,386 @@ +/* + * Névnapok + * + * $FreeBSD$ + */ + +#ifndef _hu_HU_ISO8859_2_nevnapok_ +#define _hu_HU_ISO8859_2_nevnapok_ + +LANG=hu_HU.ISO8859-2 + +/* + * N.B.: A névnapok Magyarországon a szentek napjai alapján szerepelnek + * a naptárban. Néhány név többször is szerepel, de mindenki + * csak egyszer tart névnapot egy évben. A választott nap + * ebben az esetben a hagyományokon és az illetõn múlik. + * + */ + +01/01 Fruzsina +01/02 Ábel, Gergely +01/03 Genovéva, Benjámin +01/04 Titusz, Leona +01/05 Simon +01/06 Boldizsár, Menyhárt +01/07 Attila, Ramóna +01/08 Gyöngyvér +01/09 Marcell +01/10 Melánia +01/11 Ágota, Baltazár +01/12 Ernõ, Cézár +01/13 Veronika +01/14 Bódog, Félix +01/15 Lóránt, Loránd +01/16 Gusztáv +01/17 Antal, Antónia +01/18 Piroska +01/19 Sára, Márió +01/20 Fábián, Sebestyén +01/21 Ágnes +01/22 Vince, Artúr +01/23 Zelma, Rajmund +01/24 Timót, Xénia +01/25 Pál +01/26 Vanda, Paula +01/27 Angelika, Angéla +01/28 Károly, Karola +01/29 Adél +01/30 Gerda, Martina +01/31 Marcella +02/01 Ignác +02/02 Karolina, Aida +02/03 Balázs +02/04 Ráhel, Csenge +02/05 Ágota, Ingrid +02/06 Dóra, Dorottya +02/07 Rómeó, Tódor +02/08 Aranka +02/09 Abigél, Alex +02/10 Elvira +02/11 Bertold, Marietta +02/12 Lívia, Lídia +02/13 Ella, Linda +02/14 Bálint, Valentin +02/15 Kolos +02/16 Julianna, Lilla +02/17 Donát +02/18 Bernadett +02/19 Zsuzsanna +02/20 Aladár, Álmos +02/21 Eleonóra +02/22 Gerzson +02/23 Alfréd +02/24 Mátyás +02/25 Géza +02/26 Edina +02/27 Ákos, Bátor +02/28 Elemér +03/01 Albin +03/02 Lujza +03/03 Kornélia +03/04 Kázmér +03/05 Adorján, Adrián +03/06 Leonóra, Inez +03/07 Tamás +03/08 Zoltán +03/09 Franciska, Fanni +03/10 Ildikó +03/11 Szilárd +03/12 Gergely +03/13 Krisztián, Ajtony +03/14 Matild +03/15 Kristóf +03/16 Henrietta +03/17 Gertrúd, Patrik +03/18 Sándor, Ede +03/19 József, Bánk +03/20 Klaudia +03/21 Benedek +03/22 Beáta, Izolda +03/23 Emõke +03/24 Gábor, Karina +03/25 Irén, Irisz +03/26 Emánuel +03/27 Hajnalka +03/28 Gedeon, Johanna +03/29 Aguszta +03/30 Zalán +03/31 Árpád +04/01 Hugó +04/02 Áron +04/03 Buda, Richárd +04/04 Izidor +04/05 Vince +04/06 Vilmos, Bíborka +04/07 Herman +04/08 Dénes +04/09 Erhard +04/10 Zsolt +04/11 Leó, Szaniszló +04/12 Gyula +04/13 Ida +04/14 Tibor +04/15 Anasztázia, Tas +04/16 Csongor +04/17 Rudolf +04/18 Andrea, Ilma +04/19 Emma +04/20 Tivadar +04/21 Konrád +04/22 Csilla, Noémi +04/23 Béla +04/24 György +04/25 Márk +04/26 Ervin +04/27 Zita +04/28 Valéria +04/29 Péter +04/30 Katalin, Kitti +05/01 Fülöp, Jakab +05/02 Zsigmond +05/03 Tímea, Irma +05/04 Mónika, Flórián +05/05 Györgyi +05/06 Ivett, Frida +05/07 Gizella +05/08 Mihály +05/09 Gergely +05/10 Ármin, Pálma +05/11 Ferenc +05/12 Pongrác +05/13 Szervác, Imola +05/14 Bonifác +05/15 Zsófia, Szonja +05/16 Mózes, Botond +05/17 Paszkál +05/18 Erik, Alexandra +05/19 Ivó, Milán +05/20 Bernát, Felícia +05/21 Konstantin +05/22 Júlia, Rita +05/23 Dezsõ +05/24 Eszter, Eliza +05/25 Orbán +05/26 Fülöp, Evelin +05/27 Hella +05/28 Emil, Csanád +05/29 Magdolna +05/30 Janka, Zsanett +05/31 Angéla, Petronella +06/01 Tünde +06/02 Kármen, Anita +06/03 Klotild +06/04 Bulcsú +06/05 Fatime +06/06 Norbert, Cintia +06/07 Róbert +06/08 Medárd +06/09 Félix +06/10 Margit, Gitta, Gréta +06/11 Barnabás +06/12 Villõ +06/13 Antal, Anett +06/14 Vazul +06/15 Jolán, Vid +06/16 Jusztin +06/17 Laura, Alida +06/18 Arnold, Levente +06/19 Gyárfás +06/20 Rafael +06/21 Alajos, Leila +06/22 Paulina +06/23 Zoltán, Szidonia +06/24 Iván +06/25 Vilmos, Viola +06/26 János, Pál +06/27 László +06/28 Levente, Irén +06/29 Péter, Pál +06/30 Pál +07/01 Annamária, Tihamér +07/02 Ottó +07/03 Kornél, Soma +07/04 Ulrik +07/05 Emese, Sarolta +07/06 Csaba +07/07 Apollónia +07/08 Ellák +07/09 Lukrécia +07/10 Amália +07/11 Nóra, Lili +07/12 Izabella, Dalma +07/13 Jenõ +07/14 Örs, Stella +07/15 Henrik, Roland +07/16 Valter +07/17 Endre, Elek +07/18 Frigyes +07/19 Emília +07/20 Illés +07/21 Daniella, Dániel +07/22 Magdolna +07/23 Lenke +07/24 Kinga, Kincsõ +07/25 Kristóf, Jakab +07/26 Anna, Anikó +07/27 Olga, Liliána +07/28 Szabolcs +07/29 Márta, Flóra +07/30 Judit, Xénia +07/31 Oszkár +08/01 Boglárka +08/02 Lehel +08/03 Hermina +08/04 Domonkos, Dominika +08/05 Krisztina +08/06 Berta, Bettina +08/07 Ibolya +08/08 László +08/09 Emõd +08/10 Lõrinc +08/11 Zsuzsanna, Tiborc +08/12 Klára +08/13 Ipoly +08/14 Marcell +08/15 Mária +08/16 Ábrahám +08/17 Jácint +08/18 Ilona +08/19 Huba +08/20 István +08/21 Sámuel, Hajna +08/22 Menyhért, Mirjam +08/23 Bence +08/24 Bertalan +08/25 Lajos, Patrícia +08/26 Izsó +08/27 Gáspár +08/28 Ágoston +08/29 Beatrix, Erna +08/30 Rózsa +08/31 Erika, Bella +09/01 Egyed, Egon +09/02 Rebeka, Dorina +09/03 Hilda +09/04 Rozália +09/05 Viktor, Lõrinc +09/06 Zakariás +09/07 Regina +09/08 Mária, Adrienn +09/09 Ádám +09/10 Nikolett, Hunor +09/11 Teodóra +09/12 Mária +09/13 Kornél +09/14 Szeréna, Roxána +09/15 Enikõ, Melitta +09/16 Edit +09/17 Zsófia +09/18 Diána +09/19 Vilhelmina +09/20 Friderika +09/21 Máté, Mirella +09/22 Móric +09/23 Tekla +09/24 Gellért, Mercédesz +09/25 Eufrozina, Kende +09/26 Jusztina +09/27 Adalbert +09/28 Vencel +09/29 Mihály +09/30 Jeromos +10/01 Malvin +10/02 Petra +10/03 Helga +10/04 Ferenc +10/05 Aurél +10/06 Brúnó, Renáta +10/07 Amália +10/08 Koppány +10/09 Dénes +10/10 Gedeon +10/11 Brigitta +10/12 Miksa +10/13 Kálmán, Ede +10/14 Helén +10/15 Teréz +10/16 Gál +10/17 Hedvig +10/18 Lukács +10/19 Nándor +10/20 Vendel +10/21 Orsolya +10/22 Elõd +10/23 Gyöngyi +10/24 Salamon +10/25 Blanka, Bianka +10/26 Dömötör +10/27 Szabina +10/28 Simon, Szimonetta +10/29 Nárcisz +10/30 Alfonz +10/31 Farkas +11/01 Marianna +11/02 Achilles +11/03 Gyõzõ +11/04 Károly +11/05 Imre +11/06 Lénárd +11/07 Rezsõ +11/08 Zsombor +11/09 Tivadar +11/10 Réka +11/11 Márton +11/12 Jónás, Renátó +11/13 Szilvia +11/14 Aliz +11/15 Albert, Lipót +11/16 Ödön +11/17 Hortenzia, Gergõ +11/18 Jenõ +11/19 Erzsébet +11/20 Jolán +11/21 Olivér +11/22 Cecília +11/23 Kelemen, Klementina +11/24 Emma +11/25 Katalin +11/26 Virág +11/27 Virgil +11/28 Stefánia +11/29 Taksony +11/30 András, Andor +12/01 Elza +12/02 Melinda, Vivien +12/03 Ferenc, Olívia +12/04 Borbála, Barbara +12/05 Vilma +12/06 Miklós +12/07 Ambrus +12/08 Mária +12/09 Natália +12/10 Judit +12/11 Árpád +12/12 Gabriella +12/13 Luca, Otília +12/14 Szilárda +12/15 Valér +12/16 Etelka, Aletta +12/17 Lázár, Olimpia +12/18 Auguszta +12/19 Viola +12/20 Teofil +12/21 Tamás +12/22 Zénó +12/23 Viktória +12/24 Ádám, Éva +12/25 Eugénia +12/26 István +12/27 János +12/28 Kamilla +12/29 Tamás, Tamara +12/30 Dávid +12/31 Szilveszter + +#endif /*! _hu_HU_ISO8859_2_nevnapok_ */ diff --git a/usr.bin/calendar/calendars/hu_HU.ISO8859-2/calendar.unnepek b/usr.bin/calendar/calendars/hu_HU.ISO8859-2/calendar.unnepek new file mode 100644 index 000000000000..dab8ead76abf --- /dev/null +++ b/usr.bin/calendar/calendars/hu_HU.ISO8859-2/calendar.unnepek @@ -0,0 +1,53 @@ +/* + * Ünnepnapok + * + * $FreeBSD$ + */ + +#ifndef _hu_HU_ISO8859_2_unnepek_ +#define _hu_HU_ISO8859_2_unnepek_ + +LANG=hu_HU.ISO8859-2 + +/* Munkaszüneti napok */ +01/01 Újév +03/15 1848-as szabadságharc és forradalom ünnepe +05/01 Munka ünnepe +10/23 1956-os forradalom ünnepe + +/* Vallási munkaszüneti napok */ +Easter Húsvét +Easter+1 Húsvét hétfõ +Easter+42 Virágvasárnap +Easter+49 Pünkösd +Easter+50 Pünkösd hétfõ +08/20 Szent István nap, Államalapítás ünnepe +11/01 Halottak napja +12/25 Karácsony elsõ napja +12/26 Karácsony második napja + +/* Az itt következõ dátumok nem munkaszüneti napok csak ünnepnapok */ + +/* Csillagászati évszakok */ +03/21* Tavaszi napéjegyenlõség +06/21* Nyári napforduló +09/21* Õszi napéjegyenlõség +12/21* Téli napforduló + +/* Téli és nyári idõszámítás közötti váltás */ +03/SundayLast Váltás a nyári idõszámításra +10/SundayLast Váltás a téli idõszámításra + +/* Egyéb vallási ünnepek amelyek nem munkaszüneti napok */ +Easter-2 Nagy péntek ("a harangok Romába mennek") + +/* Egyéb ünnepnapok és emléknapok*/ +02/14 Valentin nap - a szerelmesek ünnepe +03/08 Nõ nap - egy-egy szál virág a nõknek +May Sun+2 Anyák napja +10/06 Az 1848-as aradi vértanuk napja +12/06 Mikulás napja - gyerekek csokit kapnak +12/24 Karácsony elõestéje +12/31 Szilveszter napja + +#endif /*! _hu_HU_ISO8859_2_unnepek_ */ diff --git a/usr.bin/calendar/calendars/pt_BR.ISO8859-1/calendar.all b/usr.bin/calendar/calendars/pt_BR.ISO8859-1/calendar.all new file mode 100644 index 000000000000..cdffa483ddf4 --- /dev/null +++ b/usr.bin/calendar/calendars/pt_BR.ISO8859-1/calendar.all @@ -0,0 +1,15 @@ +/* + * $FreeBSD$ + * + * Brazilian calendar originally submitted by + * Renato Tambellini + */ + +#ifndef _pt_BR_ISO8859_1_all_ +#define _pt_BR_ISO8859_1_all_ + +#include +#include +#include + +#endif /* !_pt_BR.ISO8859_1_all_ */ diff --git a/usr.bin/calendar/calendars/pt_BR.ISO8859-1/calendar.commemorative b/usr.bin/calendar/calendars/pt_BR.ISO8859-1/calendar.commemorative new file mode 100644 index 000000000000..9be5debaec37 --- /dev/null +++ b/usr.bin/calendar/calendars/pt_BR.ISO8859-1/calendar.commemorative @@ -0,0 +1,191 @@ +/* + * $FreeBSD$ + * + * Originally submitted by Renato Tambellini + * + * Brazilian commemorative days + * + * http://www.ibge.gov.br/ibgeteen/datas/home.html + */ + +#ifndef _pt_BR_ISO8859_1_commemorative_ +#define _pt_BR_ISO8859_1_commemorative_ + +LANG=pt_BR.ISO8859-1 + +01/06 Dia nacional do fotógrafo +01/06 Dia da gratidão +01/07 Dia da liberdade de culto +01/09 Dia do Fico +01/12 Aniversário de Belém +01/20 Dia do farmacêutico +01/20 Dia nacional do fusca +01/21 Dia mundial da religião +01/24 Dia da Previdência Social +01/25 Dia do carteiro +01/25 Aniversário da cidade de São Paulo +01/28 Aniversário da abertura dos portos no Brasil, em 1808 +01/30 Dia da saudade +02/01 Dia do publicitário +02/04 Aniversário de Macapá +02/07 Dia do gráfico +02/16 Dia do repórter +02/19 Dia do esportista +03/01 Aniversário da cidade do Rio de Janeiro +03/02 Dia do turismo +03/05 Dia do filatelista brasileiro +03/07 Dia do fuzileiro naval +03/08 Dia internacional da mulher +03/10 Dia do telefone +03/12 Aniversário de Recife +03/12 Dia do bibliotecário +03/14 Dia nacional da poesia +03/15 Dia da escola +03/15 Dia mundial do consumidor +03/17 Aniversário de Aracaju +03/21 Dia da eliminação da discriminação racial +03/22 Dia mundial da água +03/23 Aniversário de Florianópolis +03/23 Dia do meteorologista +03/26 Aniversário de Porto Alegre +03/27 Dia do circo +03/27 Dia do teatro +03/28 Dia do revisor e do diagramador +03/29 Aniversário de Curitiba +03/31 Aniversário do golpe militar +04/01 Dia da mentira +04/02 Dia internacional do livro para crianças +04/07 Dia mundial da saúde +04/07 Dia do jornalismo +04/08 Dia mundial de combate ao câncer +04/08 Dia da natação +04/08 Aniversário de Cuiabá +04/12 Aniversário de Fortaleza +04/13 Dia dos jovens +04/14 Dia internacional do café +04/15 Dia mundial do desenhista +04/15 Dia da conservação do solo +04/19 Dia do índio +04/20 Dia do diplomata +04/21 Aniversário de Brasília +04/21 Dia do metalúrgico +04/22 Dia do descobrimento do Brasil +04/22 Dia do planeta Terra +04/22 Dia da Força Aérea Brasileira +04/23 Dia mundial do escoteiro +04/25 Dia do contabilista +04/27 Dia da empregada doméstica +04/28 Dia da educação +04/30 Dia do ferroviário +05/05 Dia do cartógrafo +05/08 Dia do artista plástico +05/08 Dia internacional da Cruz Vermelha +05/12 Dia mundial do enfermeiro +05/13 Dia da abolição da escravatura +05/13 Dia do automóvel +05/15 Dia do assistente social +05/16 Dia do gari +05/17 Dia internacional das telecomunicações +05/18 Dia mundial dos museus +05/20 Aniversário de Palmas +05/21 Dia da Língua Nacional +05/22 Dia do apicultor +05/24 Dia do vestibulando +05/25 Dia da indústria +05/27 Dia do profissional liberal +05/29 Dia do estatístico +05/29 Dia do geógrafo +05/30 Dia do geólogo +06/01 Dia da imprensa +06/04 Dia internacional das crianças vítimas de agressão +06/05 Dia mundial do meio ambiente e da ecologia +06/09 Dia do porteiro +06/10 Dia da Língua Portuguesa +06/11 Dia da Marinha do Brasil +06/12 Dia dos namorados +06/15 Dia do paleontólogo +06/18 Dia do químico +06/19 Dia do migrante +06/21 Dia da música +06/22 Dia do aeroviário +06/25 Dia do imigrante +06/26 Dia internacional do combate às drogas +06/26 Dia do metrologista +06/29 Dia da telefonista +06/29 Dia do pescador +07/01 Dia da vacina BCG +07/02 Dia do bombeiro +07/09 Aniversário de Boa Vista +07/11 Dia mundial da população +07/12 Dia do engenheiro florestal +07/13 Dia mundial do rock +07/17 Dia de proteção às florestas +07/19 Dia do futebol +07/20 Chegada do homem à Lua +07/20 Dia da amizade +07/25 Dia do escritor +07/27 Dia nacional da prevenção de acidentes de trabalho +07/28 Dia do agricultor +08/11 Dia do advogado +08/11 Dia da televisão +08/13 Dia do economista +08/15 Dia da informática +08/16 Aniversário de Teresina +08/21 Dia da habitação +08/22 Dia do folclore +08/25 Dia do soldado +08/26 Aniversário de Campo Grande +08/27 Dia do psicólogo +08/31 Dia do nutricionista +09/03 Dia do biólogo +09/08 Dia mundial da alfabetização +09/08 Aniversário de Vitória +09/08 Aniversário de São Luís +09/09 Dia do administrador +09/09 Dia do médico veterinário +09/16 Dia internacional para preservação da camada de ozônio +09/18 Dia dos símbolos nacionais +09/21 Dia do idoso +09/21 Dia da árvore +09/25 Dia do rádio +09/25 Dia nacional do trânsito +09/30 Dia da secretária +10/04 Dia dos animais +10/05 Dia da promulgação da atual Constituição brasileira +10/11 Dia nacional da pessoa portadora de deficiência física +10/12 Dia da criança +10/12 Dia do descobrimento da América +10/12 Dia do agrônomo +10/13 Dia do fisioterapeuta +10/14 Dia da pecuária +10/15 Dia do professor +10/16 Dia mundial da alimentação +10/18 Dia do médico +10/23 Dia do aviador +10/24 Dia da ONU +10/25 Dia da democracia +10/25 Dia do dentista +10/28 Dia do funcionário público +10/29 Dia nacional do livro +10/30 Dia do comércio +10/31 Dia das bruxas +11/05 Dia do cinema brasileiro +11/19 Dia da bandeira +11/20 Dia nacional da consciência negra +11/30 Dia do teólogo +11/30 Dia da reforma agrária +12/01 Dia mundial de luta contra a AIDS +12/02 Dia da astronomia +12/03 Dia internacional das pessoas portadoras de deficiência +12/04 Dia do orientador educacional +12/05 Aniversário de Maceió +12/05 Dia internacional do voluntário +12/08 Dia da família +12/09 Dia do fonoaudiólogo +12/10 Dia da declaração dos direitos do homem +12/11 Dia do engenheiro +12/11 Dia do arquiteto +12/12 Aniversário de Belo Horizonte +12/28 Aniversário de Rio Branco + +#endif diff --git a/usr.bin/calendar/calendars/pt_BR.ISO8859-1/calendar.holidays b/usr.bin/calendar/calendars/pt_BR.ISO8859-1/calendar.holidays new file mode 100644 index 000000000000..caf1139e4116 --- /dev/null +++ b/usr.bin/calendar/calendars/pt_BR.ISO8859-1/calendar.holidays @@ -0,0 +1,25 @@ +/* + * $FreeBSD$ + * + * Originally submitted by Renato Tambellini + * + * Brazilian holidays + * + * Federal laws 662/1949, 6.802/1980, 9.093/1995 and 10.607/2002. + */ + +#ifndef _pt_BR_ISO8859_1_holidays_ +#define _pt_BR_ISO8859_1_holidays_ + +LANG=pt_BR.ISO8859-1 + +01/01 Dia da confraternização universal e da paz +04/21 Dia do Tiradentes +05/01 Dia do trabalho +09/07 Dia da independência do Brasil +10/12 Dia da Nossa Senhora Aparecida +11/02 Dia de Finados +11/15 Dia da proclamação da República +12/25 Natal + +#endif diff --git a/usr.bin/calendar/calendars/pt_BR.ISO8859-1/calendar.mcommemorative b/usr.bin/calendar/calendars/pt_BR.ISO8859-1/calendar.mcommemorative new file mode 100644 index 000000000000..1a113f8f986a --- /dev/null +++ b/usr.bin/calendar/calendars/pt_BR.ISO8859-1/calendar.mcommemorative @@ -0,0 +1,22 @@ +/* + * $FreeBSD$ + * + * Originally submitted by Renato Tambellini + * + * Brazilian mobile commemorative days + * + * http://www.novomilenio.inf.br/porto/mapas/nmcalenp.htm + */ + +#ifndef _pt_BR_ISO8859_1_mcommemorative_ +#define _pt_BR_ISO8859_1_mcommemorative_ + +LANG=pt_BR.ISO8859-1 + +Easter-47 Carnaval +Easter-7 Domingo de Ramos +Easter-2 Sexta-feira Santa +Easter Páscoa +Easter+60 Corpus Christi + +#endif diff --git a/usr.bin/calendar/calendars/pt_BR.UTF-8/calendar.all b/usr.bin/calendar/calendars/pt_BR.UTF-8/calendar.all new file mode 100644 index 000000000000..25db5e13a1f1 --- /dev/null +++ b/usr.bin/calendar/calendars/pt_BR.UTF-8/calendar.all @@ -0,0 +1,16 @@ +/* + * $FreeBSD$ + * + * Originally submitted by Renato Tambellini + * + * Brazilian calendar + */ + +#ifndef _pt_BR_UTF_8_all_ +#define _pt_BR_UTF_8_all_ + +#include +#include +#include + +#endif /* !_pt_BR.UTF_8_all_ */ diff --git a/usr.bin/calendar/calendars/pt_BR.UTF-8/calendar.commemorative b/usr.bin/calendar/calendars/pt_BR.UTF-8/calendar.commemorative new file mode 100644 index 000000000000..3f5df5221c02 --- /dev/null +++ b/usr.bin/calendar/calendars/pt_BR.UTF-8/calendar.commemorative @@ -0,0 +1,189 @@ +/* + * $FreeBSD$ + * + * Originally submitted by Renato Tambellini + * + * Brazilian commemorative days + */ + +#ifndef _pt_BR_UTF_8_commemorative_ +#define _pt_BR_UTF_8_commemorative_ + +LANG=pt_BR.UTF-8 + +01/06 Dia nacional do fotógrafo +01/06 Dia da gratidão +01/07 Dia da liberdade de culto +01/09 Dia do Fico +01/12 Aniversário de Belém +01/20 Dia do farmacêutico +01/20 Dia nacional do fusca +01/21 Dia mundial da religião +01/24 Dia da Previdência Social +01/25 Dia do carteiro +01/25 Aniversário da cidade de São Paulo +01/28 Aniversário da abertura dos portos no Brasil, em 1808 +01/30 Dia da saudade +02/01 Dia do publicitário +02/04 Aniversário de Macapá +02/07 Dia do gráfico +02/16 Dia do repórter +02/19 Dia do esportista +03/01 Aniversário da cidade do Rio de Janeiro +03/02 Dia do turismo +03/05 Dia do filatelista brasileiro +03/07 Dia do fuzileiro naval +03/08 Dia internacional da mulher +03/10 Dia do telefone +03/12 Aniversário de Recife +03/12 Dia do bibliotecário +03/14 Dia nacional da poesia +03/15 Dia da escola +03/15 Dia mundial do consumidor +03/17 Aniversário de Aracaju +03/21 Dia da eliminação da discriminação racial +03/22 Dia mundial da água +03/23 Aniversário de Florianópolis +03/23 Dia do meteorologista +03/26 Aniversário de Porto Alegre +03/27 Dia do circo +03/27 Dia do teatro +03/28 Dia do revisor e do diagramador +03/29 Aniversário de Curitiba +03/31 Aniversário do golpe militar +04/01 Dia da mentira +04/02 Dia internacional do livro para crianças +04/07 Dia mundial da saúde +04/07 Dia do jornalismo +04/08 Dia mundial de combate ao câncer +04/08 Dia da natação +04/08 Aniversário de Cuiabá +04/12 Aniversário de Fortaleza +04/13 Dia dos jovens +04/14 Dia internacional do café +04/15 Dia mundial do desenhista +04/15 Dia da conservação do solo +04/19 Dia do índio +04/20 Dia do diplomata +04/21 Aniversário de Brasília +04/21 Dia do metalúrgico +04/22 Dia do descobrimento do Brasil +04/22 Dia do planeta Terra +04/22 Dia da Força Aérea Brasileira +04/23 Dia mundial do escoteiro +04/25 Dia do contabilista +04/27 Dia da empregada doméstica +04/28 Dia da educação +04/30 Dia do ferroviário +05/05 Dia do cartógrafo +05/08 Dia do artista plástico +05/08 Dia internacional da Cruz Vermelha +05/12 Dia mundial do enfermeiro +05/13 Dia da abolição da escravatura +05/13 Dia do automóvel +05/15 Dia do assistente social +05/16 Dia do gari +05/17 Dia internacional das telecomunicações +05/18 Dia mundial dos museus +05/20 Aniversário de Palmas +05/21 Dia da Língua Nacional +05/22 Dia do apicultor +05/24 Dia do vestibulando +05/25 Dia da indústria +05/27 Dia do profissional liberal +05/29 Dia do estatístico +05/29 Dia do geógrafo +05/30 Dia do geólogo +06/01 Dia da imprensa +06/04 Dia internacional das crianças vítimas de agressão +06/05 Dia mundial do meio ambiente e da ecologia +06/09 Dia do porteiro +06/10 Dia da Língua Portuguesa +06/11 Dia da Marinha do Brasil +06/12 Dia dos namorados +06/15 Dia do paleontólogo +06/18 Dia do químico +06/19 Dia do migrante +06/21 Dia da música +06/22 Dia do aeroviário +06/25 Dia do imigrante +06/26 Dia internacional do combate às drogas +06/26 Dia do metrologista +06/29 Dia da telefonista +06/29 Dia do pescador +07/01 Dia da vacina BCG +07/02 Dia do bombeiro +07/09 Aniversário de Boa Vista +07/11 Dia mundial da população +07/12 Dia do engenheiro florestal +07/13 Dia mundial do rock +07/17 Dia de proteção às florestas +07/19 Dia do futebol +07/20 Chegada do homem à Lua +07/20 Dia da amizade +07/25 Dia do escritor +07/27 Dia nacional da prevenção de acidentes de trabalho +07/28 Dia do agricultor +08/11 Dia do advogado +08/11 Dia da televisão +08/13 Dia do economista +08/15 Dia da informática +08/16 Aniversário de Teresina +08/21 Dia da habitação +08/22 Dia do folclore +08/25 Dia do soldado +08/26 Aniversário de Campo Grande +08/27 Dia do psicólogo +08/31 Dia do nutricionista +09/03 Dia do biólogo +09/08 Dia mundial da alfabetização +09/08 Aniversário de Vitória +09/08 Aniversário de São Luís +09/09 Dia do administrador +09/09 Dia do médico veterinário +09/16 Dia internacional para preservação da camada de ozônio +09/18 Dia dos símbolos nacionais +09/21 Dia do idoso +09/21 Dia da árvore +09/25 Dia do rádio +09/25 Dia nacional do trânsito +09/30 Dia da secretária +10/04 Dia dos animais +10/05 Dia da promulgação da atual Constituição brasileira +10/11 Dia nacional da pessoa portadora de deficiência física +10/12 Dia da criança +10/12 Dia do descobrimento da América +10/12 Dia do agrônomo +10/13 Dia do fisioterapeuta +10/14 Dia da pecuária +10/15 Dia do professor +10/16 Dia mundial da alimentação +10/18 Dia do médico +10/23 Dia do aviador +10/24 Dia da ONU +10/25 Dia da democracia +10/25 Dia do dentista +10/28 Dia do funcionário público +10/29 Dia nacional do livro +10/30 Dia do comércio +10/31 Dia das bruxas +11/05 Dia do cinema brasileiro +11/19 Dia da bandeira +11/20 Dia nacional da consciência negra +11/30 Dia do teólogo +11/30 Dia da reforma agrária +12/01 Dia mundial de luta contra a AIDS +12/02 Dia da astronomia +12/03 Dia internacional das pessoas portadoras de deficiência +12/04 Dia do orientador educacional +12/05 Aniversário de Maceió +12/05 Dia internacional do voluntário +12/08 Dia da família +12/09 Dia do fonoaudiólogo +12/10 Dia da declaração dos direitos do homem +12/11 Dia do engenheiro +12/11 Dia do arquiteto +12/12 Aniversário de Belo Horizonte +12/28 Aniversário de Rio Branco + +#endif diff --git a/usr.bin/calendar/calendars/pt_BR.UTF-8/calendar.holidays b/usr.bin/calendar/calendars/pt_BR.UTF-8/calendar.holidays new file mode 100644 index 000000000000..7df0c3418f4c --- /dev/null +++ b/usr.bin/calendar/calendars/pt_BR.UTF-8/calendar.holidays @@ -0,0 +1,25 @@ +/* + * $FreeBSD$ + * + * Originally submitted by Renato Tambellini + * + * Brazilian holidays + * + * Federal laws 662/1949, 6.802/1980, 9.093/1995 and 10.607/2002. + */ + +#ifndef _pt_BR_UTF_8_holidays_ +#define _pt_BR_UTF_8_holidays_ + +LANG=pt_BR.UTF-8 + +01/01 Dia da confraternização universal e da paz +04/21 Dia do Tiradentes +05/01 Dia do trabalho +09/07 Dia da independência do Brasil +10/12 Dia da Nossa Senhora Aparecida +11/02 Dia de Finados +11/15 Dia da proclamação da República +12/25 Natal + +#endif diff --git a/usr.bin/calendar/calendars/pt_BR.UTF-8/calendar.mcommemorative b/usr.bin/calendar/calendars/pt_BR.UTF-8/calendar.mcommemorative new file mode 100644 index 000000000000..b3eb7325f61d --- /dev/null +++ b/usr.bin/calendar/calendars/pt_BR.UTF-8/calendar.mcommemorative @@ -0,0 +1,22 @@ +/* + * $FreeBSD$ + * + * Originally submitted by Renato Tambellini + * + * Brazilian mobile commemorative days + * + * http://www.novomilenio.inf.br/porto/mapas/nmcalenp.htm + */ + +#ifndef _pt_BR_UTF_8_mcommemorative_ +#define _pt_BR_UTF_8_mcommemorative_ + +LANG=pt_BR.UTF-8 + +Easter-47 Carnaval +Easter-7 Domingo de Ramos +Easter-2 Sexta-feira Santa +Easter Páscoa +Easter+60 Corpus Christi + +#endif diff --git a/usr.bin/calendar/calendars/ru_RU.KOI8-R/calendar.all b/usr.bin/calendar/calendars/ru_RU.KOI8-R/calendar.all new file mode 100644 index 000000000000..c7d1cfadb586 --- /dev/null +++ b/usr.bin/calendar/calendars/ru_RU.KOI8-R/calendar.all @@ -0,0 +1,16 @@ +/* + * òÕÓÓËÉÊ ËÁÌÅÎÄÁÒØ + * + * $FreeBSD$ + */ + +#ifndef _ru_RU_KOI8_R_all_ +#define _ru_RU_KOI8_R_all_ + +#include +#include +#include +#include +#include + +#endif /* !_ru_RU_KOI8_R_all_ */ diff --git a/usr.bin/calendar/calendars/ru_RU.KOI8-R/calendar.common b/usr.bin/calendar/calendars/ru_RU.KOI8-R/calendar.common new file mode 100644 index 000000000000..dc0ddd0293d2 --- /dev/null +++ b/usr.bin/calendar/calendars/ru_RU.KOI8-R/calendar.common @@ -0,0 +1,105 @@ +/* + * òÏÓÓÉÊÓËÉÅ ÐÒÁÚÄÎÉËÉ + * + * $FreeBSD$ + */ + +#ifndef _ru_RU_KOI8_R_common_ +#define _ru_RU_KOI8_R_common_ + +LANG=ru_RU.KOI8-R + +12 ÑÎ×. äÅÎØ ÒÁÂÏÔÎÉËÁ ÐÒÏËÕÒÁÔÕÒÙ +13 ÑÎ×. äÅÎØ ÒÏÓÓÉÊÓËÏÊ ÐÅÞÁÔÉ +14 ÑÎ×. óÔÁÒÙÊ îÏ×ÙÊ ÇÏÄ +21 ÑÎ×. äÅÎØ ÉÎÖÅÎÅÒÎÙÈ ×ÏÊÓË +25 ÑÎ×. ôÁÔØÑÎÉÎ ÄÅÎØ. óÔÕÄÅÎÞÅÓËÉÊ ÐÒÁÚÄÎÉË + 8 ÆÅ×Ò. äÅÎØ ÒÏÓÓÉÊÓËÏÊ ÎÁÕËÉ +10 ÆÅ×Ò. äÅÎØ ÄÉÐÌÏÍÁÔÉÞÅÓËÏÇÏ ÒÁÂÏÔÎÉËÁ + 1 ÍÁÒÔÁ ÷ÓÅÍÉÒÎÙÊ ÄÅÎØ ÇÒÁÖÄÁÎÓËÏÊ ÏÂÏÒÏÎÙ +03/SunSecond äÅÎØ ÒÁÂÏÔÎÉËÏ× ÇÅÏÄÅÚÉÉ É ËÁÒÔÏÇÒÁÆÉÉ +11 ÍÁÒÔÁ äÅÎØ ÒÁÂÏÔÎÉËÁ ÏÒÇÁÎÏ× ÎÁÒËÏËÏÎÔÒÏÌÑ +18 ÍÁÒÔÁ äÅÎØ ÎÁÌÏÇÏ×ÏÊ ÐÏÌÉÃÉÉ +03/SunThird äÅÎØ ÒÁÂÏÔÎÉËÏ× ÔÏÒÇÏ×ÌÉ, ÂÙÔÏ×ÏÇÏ ÏÂÓÌÕÖÉ×ÁÎÉÑ ÎÁÓÅÌÅÎÉÑ É ÖÉÌÉÝÎÏ-ËÏÍÍÕÎÁÌØÎÏÇÏ ÈÏÚÑÊÓÔ×Á +27 ÍÁÒÔÁ íÅÖÄÕÎÁÒÏÄÎÙÊ ÄÅÎØ ÔÅÁÔÒÁ +27 ÍÁÒÔÁ äÅÎØ ×ÎÕÔÒÅÎÎÉÈ ×ÏÊÓË + 1 ÁÐÒ. äÅÎØ ÓÍÅÈÁ + 2 ÁÐÒ. äÅÎØ ÅÄÉÎÅÎÉÑ ÎÁÒÏÄÏ× +04/SunFirst äÅÎØ ÇÅÏÌÏÇÁ +12 ÁÐÒ. äÅÎØ ËÏÓÍÏÎÁ×ÔÉËÉ +04/SunSecond äÅÎØ ×ÏÊÓË ÐÒÏÔÉ×Ï×ÏÚÄÕÛÎÏÊ ÏÂÏÒÏÎÙ +26 ÁÐÒ. äÅÎØ ÐÁÍÑÔÉ ÐÏÇÉÂÛÉÈ × ÒÁÄÉÁÃÉÏÎÎÙÈ Á×ÁÒÉÑÈ É ËÁÔÁÓÔÒÏÆÁÈ +30 ÁÐÒ. äÅÎØ ÐÏÖÁÒÎÏÊ ÏÈÒÁÎÙ + 7 ÍÁÑ äÅÎØ ÒÁÄÉÏ +17 ÍÁÑ íÅÖÄÕÎÁÒÏÄÎÙÊ ÄÅÎØ ÔÅÌÅËÏÍÍÕÎÉËÁÃÉÊ +18 ÍÁÑ íÅÖÄÕÎÁÒÏÄÎÙÊ ÄÅÎØ ÍÕÚÅÅ× +24 ÍÁÑ äÅÎØ ÓÌÁ×ÑÎÓËÏÊ ÐÉÓØÍÅÎÎÏÓÔÉ É ËÕÌØÔÕÒÙ +26 ÍÁÑ äÅÎØ ÒÏÓÓÉÊÓËÏÇÏ ÐÒÅÄÐÒÉÎÉÍÁÔÅÌØÓÔ×Á +27 ÍÁÑ ïÂÝÅÒÏÓÓÉÊÓËÉÊ ÄÅÎØ ÂÉÂÌÉÏÔÅË +28 ÍÁÑ äÅÎØ ÐÏÇÒÁÎÉÞÎÉËÁ +30 ÍÁÑ äÅÎØ ÐÏÖÁÒÎÏÊ ÏÈÒÁÎÙ +31 ÍÁÑ äÅÎØ òÏÓÓÉÊÓËÏÊ áÄ×ÏËÁÔÕÒÙ +05/SunLast äÅÎØ ÈÉÍÉËÁ + 1 ÉÀÎÑ äÅÎØ ÚÁÝÉÔÙ ÄÅÔÅÊ + 5 ÉÀÎÑ äÅÎØ ÜËÏÌÏÇÁ + 6 ÉÀÎÑ ðÕÛËÉÎÓËÉÊ ÄÅÎØ + 8 ÉÀÎÑ äÅÎØ ÓÏÃÉÁÌØÎÏÇÏ ÒÁÂÏÔÎÉËÁ +06/SunSecond äÅÎØ ÒÁÂÏÔÎÉËÏ× ÌÅÇËÏÊ ÐÒÏÍÙÛÌÅÎÎÏÓÔÉ +06/SunThird äÅÎØ ÍÅÄÉÃÉÎÓËÏÇÏ ÒÁÂÏÔÎÉËÁ +22 ÉÀÎÑ äÅÎØ ÐÁÍÑÔÉ É ÓËÏÒÂÉ (îÁÞÁÌÏ ÷ÅÌÉËÏÊ ïÔÅÞÅÓÔ×ÅÎÎÏÊ ÷ÏÊÎÙ, 1941 ÇÏÄ) +27 ÉÀÎÑ äÅÎØ ÍÏÌÏÄÅÖÉ +29 ÉÀÎÑ äÅÎØ ÐÁÒÔÉÚÁÎ É ÐÏÄÐÏÌØÝÉËÏ× +06/SatLast äÅÎØ ÉÚÏÂÒÅÔÁÔÅÌÑ É ÒÁÃÉÏÎÁÌÉÚÁÔÏÒÁ +07/SunFirst äÅÎØ ÒÁÂÏÔÎÉËÏ× ÍÏÒÓËÏÇÏ É ÒÅÞÎÏÇÏ ÆÌÏÔÁ +07/SunSecond äÅÎØ ÒÙÂÁËÁ +07/SunSecond äÅÎØ ÒÏÓÓÉÊÓËÏÊ ÐÏÞÔÙ +07/SunThird äÅÎØ ÍÅÔÁÌÌÕÒÇÁ +07/SunLast äÅÎØ ÷ÏÅÎÎÏ-íÏÒÓËÏÇÏ æÌÏÔÁ +28 ÉÀÌÑ äÅÎØ ËÒÅÝÅÎÉÑ òÕÓÉ + 6 Á×Ç. äÅÎØ ÖÅÌÅÚÎÏÄÏÒÏÖÎÙÈ ×ÏÊÓË +08/SunFirst äÅÎØ ÖÅÌÅÚÎÏÄÏÒÏÖÎÉËÁ +12 Á×Ç. äÅÎØ ×ÏÅÎÎÏ-×ÏÚÄÕÛÎÙÈ ÓÉÌ +08/SunSecond äÅÎØ ÓÔÒÏÉÔÅÌÑ +08/SunThird äÅÎØ ÷ÏÚÄÕÛÎÏÇÏ æÌÏÔÁ +22 Á×Ç. äÅÎØ ÇÏÓÕÄÁÒÓÔ×ÅÎÎÏÇÏ ÆÌÁÇÁ +27 Á×Ç. äÅÎØ ËÉÎÏ +08/SunLast äÅÎØ ÛÁÈÔÅÒÁ + 1 ÓÅÎÔ. äÅÎØ ÚÎÁÎÉÊ + 2 ÓÅÎÔ. äÅÎØ ÒÏÓÓÉÊÓËÏÊ Ç×ÁÒÄÉÉ + 3 ÓÅÎÔ. äÅÎØ ÓÏÌÉÄÁÒÎÏÓÔÉ × ÂÏÒØÂÅ Ó ÔÅÒÒÏÒÉÚÍÏÍ + 4 ÓÅÎÔ. äÅÎØ ÓÐÅÃÉÁÌÉÓÔÁ ÐÏ ÑÄÅÒÎÏÍÕ ÏÂÅÓÐÅÞÅÎÉÀ +09/SunFirst äÅÎØ ÒÁÂÏÔÎÉËÏ× ÎÅÆÔÑÎÏÊ É ÇÁÚÏ×ÏÊ ÐÒÏÍÙÛÌÅÎÎÏÓÔÉ +09/SunSecond äÅÎØ ÔÁÎËÉÓÔÁ +09/SunThird äÅÎØ ÒÁÂÏÔÎÉËÏ× ÌÅÓÁ +28 ÓÅÎÔ. äÅÎØ ÒÁÂÏÔÎÉËÁ ÁÔÏÍÎÏÊ ÐÒÏÍÙÛÌÅÎÎÏÓÔÉ +09/SunLast äÅÎØ ÍÁÛÉÎÏÓÔÒÏÉÔÅÌÑ + 1 ÏËÔ. äÅÎØ ÐÏÖÉÌÙÈ ÌÀÄÅÊ + 1 ÏËÔ. äÅÎØ ÓÕÈÏÐÕÔÎÙÈ ×ÏÊÓË + 4 ÏËÔ. äÅÎØ ËÏÓÍÉÞÅÓËÉÈ ×ÏÊÓË + 5 ÏËÔ. äÅÎØ ÕÞÉÔÅÌÑ +14 ÏËÔ. íÅÖÄÕÎÁÒÏÄÎÙÊ ÄÅÎØ ÓÔÁÎÄÁÒÔÉÚÁÃÉÉ +10/SunSecond äÅÎØ ÒÁÂÏÔÎÉËÏ× ÓÅÌØÓËÏÇÏ ÈÏÚÑÊÓÔ×Á É ÐÅÒÅÒÁÂÁÔÙ×ÁÀÝÅÊ ÐÒÏÍÙÛÌÅÎÎÏÓÔÉ +10/SunThird äÅÎØ ÒÁÂÏÔÎÉËÏ× ÄÏÒÏÖÎÏÇÏ ÈÏÚÑÊÓÔ×Á +24 ÏËÔ. íÅÖÄÕÎÁÒÏÄÎÙÊ ÄÅÎØ ïïî +25 ÏËÔ. äÅÎØ ÔÁÍÏÖÅÎÎÉËÁ +30 ÏËÔ. äÅÎØ ÐÁÍÑÔÉ ÖÅÒÔ× ÐÏÌÉÔÉÞÅÓËÉÈ ÒÅÐÒÅÓÓÉÊ +10/SunLast äÅÎØ ÒÁÂÏÔÎÉËÏ× Á×ÔÏÍÏÂÉÌØÎÏÇÏ ÔÒÁÎÓÐÏÒÔÁ + 7 ÎÏÑÂ. äÅÎØ ÏËÔÑÂÒØÓËÏÊ ÒÅ×ÏÌÀÃÉÉ 1917 ÇÏÄÁ + 9 ÎÏÑÂ. ÷ÓÅÍÉÒÎÙÊ ÄÅÎØ ËÁÞÅÓÔ×Á +10 ÎÏÑÂ. äÅÎØ ÍÉÌÉÃÉÉ +16 ÎÏÑÂ. äÅÎØ ÍÏÒÓËÏÊ ÐÅÈÏÔÙ +17 ÎÏÑÂ. íÅÖÄÕÎÁÒÏÄÎÙÊ ÄÅÎØ ÓÔÕÄÅÎÔÏ× +19 ÎÏÑÂ. äÅÎØ ÒÁËÅÔÎÙÈ ×ÏÊÓË É ÁÒÔÉÌÌÅÒÉÉ +21 ÎÏÑÂ. äÅÎØ ÒÁÂÏÔÎÉËÏ× ÎÁÌÏÇÏ×ÙÈ ÏÒÇÁÎÏ× +26 ÎÏÑÂ. ÷ÓÅÍÉÒÎÙÊ ÄÅÎØ ÉÎÆÏÒÍÁÃÉÉ +11/SunLast äÅÎØ ÍÁÔÅÒÉ + 1 ÄÅË. ÷ÓÅÍÉÒÎÙÊ ÄÅÎØ ÂÏÒØÂÙ ÓÏ óðéäÏÍ + 3 ÄÅË. äÅÎØ ÀÒÉÓÔÁ + 9 ÄÅË. äÅÎØ çÅÒÏÅ× ïÔÅÞÅÓÔ×Á +12 ÄÅË. äÅÎØ ëÏÎÓÔÉÔÕÃÉÉ +17 ÄÅË. äÅÎØ ÒÁËÅÔÎÙÈ ×ÏÊÓË ÓÔÒÁÔÅÇÉÞÅÓËÏÇÏ ÎÁÚÎÁÞÅÎÉÑ +20 ÄÅË. äÅÎØ ÒÁÂÏÔÎÉËÁ ÏÒÇÁÎÏ× ÂÅÚÏÐÁÓÎÏÓÔÉ +22 ÄÅË. äÅÎØ ÜÎÅÒÇÅÔÉËÁ +27 ÄÅË. äÅÎØ ÓÐÁÓÁÔÅÌÑ + +#endif /* !_ru_RU_KOI8_R_common_ */ diff --git a/usr.bin/calendar/calendars/ru_RU.KOI8-R/calendar.holiday b/usr.bin/calendar/calendars/ru_RU.KOI8-R/calendar.holiday new file mode 100644 index 000000000000..1d0595b9ca19 --- /dev/null +++ b/usr.bin/calendar/calendars/ru_RU.KOI8-R/calendar.holiday @@ -0,0 +1,25 @@ +/* + * òÏÓÓÉÊÓËÉÅ ÐÒÁÚÄÎÉËÉ (ÎÅÒÁÂÏÞÉÅ "ËÒÁÓÎÙÅ" ÄÎÉ) + * + * $FreeBSD$ + */ + +#ifndef _ru_RU_KOI8_R_holiday_ +#define _ru_RU_KOI8_R_holiday_ + +LANG=ru_RU.KOI8-R + + 1 ÑÎ×. îÏ×ÙÊ ÇÏÄ + 2 ÑÎ×. îÏ×ÏÇÏÄÎÉÅ ËÁÎÉËÕÌÙ + 3 ÑÎ×. îÏ×ÏÇÏÄÎÉÅ ËÁÎÉËÕÌÙ + 4 ÑÎ×. îÏ×ÏÇÏÄÎÉÅ ËÁÎÉËÕÌÙ + 5 ÑÎ×. îÏ×ÏÇÏÄÎÉÅ ËÁÎÉËÕÌÙ + 7 ÑÎ×. òÏÖÄÅÓÔ×Ï èÒÉÓÔÏ×Ï +23 ÆÅ×Ò. äÅÎØ ÚÁÝÉÔÎÉËÁ ïÔÅÞÅÓÔ×Á + 8 ÍÁÒÔÁ íÅÖÄÕÎÁÒÏÄÎÙÊ ÖÅÎÓËÉÊ ÄÅÎØ + 1 ÍÁÑ ðÒÁÚÄÎÉË ÷ÅÓÎÙ É ôÒÕÄÁ + 9 ÍÁÑ äÅÎØ ðÏÂÅÄÙ +12 ÉÀÎÑ äÅÎØ òÏÓÓÉÉ + 4 ÎÏÑÂ. äÅÎØ ÎÁÒÏÄÎÏÇÏ ÅÄÉÎÓÔ×Á + +#endif /* !_ru_RU_KOI8_R_holiday_ */ diff --git a/usr.bin/calendar/calendars/ru_RU.KOI8-R/calendar.military b/usr.bin/calendar/calendars/ru_RU.KOI8-R/calendar.military new file mode 100644 index 000000000000..ae5f18ddcdea --- /dev/null +++ b/usr.bin/calendar/calendars/ru_RU.KOI8-R/calendar.military @@ -0,0 +1,28 @@ +/* + * äÎÉ ×ÏÉÎÓËÏÊ ÓÌÁ×Ù òÏÓÓÉÉ + * + * $FreeBSD$ + */ + +#ifndef _ru_RU_KOI8_R_military_ +#define _ru_RU_KOI8_R_military_ + +LANG=ru_RU.KOI8-R + +27 ÑÎ×. äÅÎØ ÓÎÑÔÉÑ ÂÌÏËÁÄÙ ÇÏÒÏÄÁ ìÅÎÉÎÇÒÁÄÁ (1944 ÇÏÄ) + 2 ÆÅ×Ò. äÅÎØ ÒÁÚÇÒÏÍÁ ÓÏ×ÅÔÓËÉÍÉ ×ÏÊÓËÁÍÉ ÎÅÍÅÃËÏ-ÆÁÛÉÓÔÓËÉÈ ×ÏÊÓË × óÔÁÌÉÎÇÒÁÄÓËÏÊ ÂÉÔ×Å (1943 ÇÏÄ) +23 ÆÅ×Ò. äÅÎØ ÐÏÂÅÄÙ ëÒÁÓÎÏÊ áÒÍÉÉ ÎÁÄ ËÁÊÚÅÒÏ×ÓËÉÍÉ ×ÏÊÓËÁÍÉ çÅÒÍÁÎÉÉ (1918 ÇÏÄ) +18 ÁÐÒ. äÅÎØ ÐÏÂÅÄÙ ÒÕÓÓËÉÈ ×ÏÉÎÏ× ËÎÑÚÑ áÌÅËÓÁÎÄÒÁ îÅ×ÓËÏÇÏ ÎÁÄ ÎÅÍÅÃËÉÍÉ ÒÙÃÁÒÑÍÉ ÎÁ þÕÄÓËÏÍ ÏÚÅÒÅ (ìÅÄÏ×ÏÅ ÐÏÂÏÉÝÅ, 1242 ÇÏÄ) +10 ÉÀÌÑ äÅÎØ ÐÏÂÅÄÙ ÒÕÓÓËÏÊ ÁÒÍÉÉ ÐÏÄ ËÏÍÁÎÄÏ×ÁÎÉÅÍ ðÅÔÒÁ ðÅÒ×ÏÇÏ ÎÁÄ Û×ÅÄÁÍÉ × ðÏÌÔÁ×ÓËÏÍ ÓÒÁÖÅÎÉÉ (1709 ÇÏÄ) + 9 Á×Ç. äÅÎØ ÐÅÒ×ÏÊ × ÒÏÓÓÉÊÓËÏÊ ÉÓÔÏÒÉÉ ÍÏÒÓËÏÊ ÐÏÂÅÄÙ ÒÕÓÓËÏÇÏ ÆÌÏÔÁ ÐÏÄ ËÏÍÁÎÄÏ×ÁÎÉÅÍ ðÅÔÒÁ ðÅÒ×ÏÇÏ ÎÁÄ Û×ÅÄÁÍÉ Õ ÍÙÓÁ çÁÎÇÕÔ (1714 ÇÏÄ) +23 Á×Ç. äÅÎØ ÒÁÚÇÒÏÍÁ ÓÏ×ÅÔÓËÉÍÉ ×ÏÊÓËÁÍÉ ÎÅÍÅÃËÏ-ÆÁÛÉÓÔÓËÉÈ ×ÏÊÓË × ëÕÒÓËÏÊ ÂÉÔ×Å (1943 ÇÏÄ) + 2 ÓÅÎÔ. äÅÎØ ÏËÏÎÞÁÎÉÑ ÷ÔÏÒÏÊ ÍÉÒÏ×ÏÊ ×ÏÊÎÙ (1945 ÇÏÄ) + 8 ÓÅÎÔ. äÅÎØ âÏÒÏÄÉÎÓËÏÇÏ ÓÒÁÖÅÎÉÑ ÒÕÓÓËÏÊ ÁÒÍÉÉ ÐÏÄ ËÏÍÁÎÄÏ×ÁÎÉÅÍ í.é. ëÕÔÕÚÏ×Á Ó ÆÒÁÎÃÕÚÓËÏÊ ÁÒÍÉÅÊ (1812 ÇÏÄ) +11 ÓÅÎÔ. äÅÎØ ÐÏÂÅÄÙ ÒÕÓÓËÏÊ ÜÓËÁÄÒÙ ÐÏÄ ËÏÍÁÎÄÏ×ÁÎÉÅÍ æ.æ. õÛÁËÏ×Á ÎÁÄ ÔÕÒÅÃËÏÊ ÜÓËÁÄÒÏÊ Õ ÍÙÓÁ ôÅÎÄÒÁ (1790 ÇÏÄ) +21 ÓÅÎÔ. äÅÎØ ÐÏÂÅÄÙ ÒÕÓÓËÉÈ ÐÏÌËÏ× ×Ï ÇÌÁ×Å Ó ×ÅÌÉËÉÍ ËÎÑÚÅÍ äÍÉÔÒÉÅÍ äÏÎÓËÉÍ ÎÁÄ ÍÏÎÇÏÌÏ-ÔÁÔÁÒÓËÉÍÉ ×ÏÊÓËÁÍÉ × ëÕÌÉËÏ×ÓËÏÊ ÂÉÔ×Å (1380 ÇÏÄ) + 4 ÎÏÑÂ. äÅÎØ ÏÓ×ÏÂÏÖÄÅÎÉÑ íÏÓË×Ù ÓÉÌÁÍÉ ÎÁÒÏÄÎÏÇÏ ÏÐÏÌÞÅÎÉÑ ÐÏÄ ÒÕËÏ×ÏÄÓÔ×ÏÍ ëÕÚØÍÙ íÉÎÉÎÁ É äÍÉÔÒÉÑ ðÏÖÁÒÓËÏÇÏ ÏÔ ÐÏÌØÓËÉÈ ÉÎÔÅÒ×ÅÎÔÏ× (1612 ÇÏÄ) + 1 ÄÅË. äÅÎØ ÐÏÂÅÄÙ ÒÕÓÓËÏÊ ÜÓËÁÄÒÙ ÐÏÄ ËÏÍÁÎÄÏ×ÁÎÉÅÍ ð.ó. îÁÈÉÍÏ×Á ÎÁÄ ÔÕÒÅÃËÏÊ ÜÓËÁÄÒÏÊ Õ ÍÙÓÁ óÉÎÏÐ (1853 ÇÏÄ) + 5 ÄÅË. äÅÎØ ÎÁÞÁÌÁ ËÏÎÔÒÎÁÓÔÕÐÌÅÎÉÑ ÓÏ×ÅÔÓËÉÈ ×ÏÊÓË ÐÒÏÔÉ× ÎÅÍÅÃËÏ-ÆÁÛÉÓÔÓËÉÈ ×ÏÊÓË × ÂÉÔ×Å ÐÏÄ íÏÓË×ÏÊ (1941 ÇÏÄ) +24 ÄÅË. äÅÎØ ×ÚÑÔÉÑ ÔÕÒÅÃËÏÊ ËÒÅÐÏÓÔÉ éÚÍÁÉÌ ÒÕÓÓËÉÍÉ ×ÏÊÓËÁÍÉ ÐÏÄ ËÏÍÁÎÄÏ×ÁÎÉÅÍ á.÷. óÕ×ÏÒÏ×Á (1790 ÇÏÄ) + +#endif /* !_ru_RU_KOI8_R_military_ */ diff --git a/usr.bin/calendar/calendars/ru_RU.KOI8-R/calendar.orthodox b/usr.bin/calendar/calendars/ru_RU.KOI8-R/calendar.orthodox new file mode 100644 index 000000000000..10292ed268b4 --- /dev/null +++ b/usr.bin/calendar/calendars/ru_RU.KOI8-R/calendar.orthodox @@ -0,0 +1,36 @@ +/* + * ðÒÁ×ÏÓÌÁ×ÎÙÅ ÐÒÁÚÄÎÉËÉ + * + * $FreeBSD$ + */ + +#ifndef _ru_RU_KOI8_R_orthodox_ +#define _ru_RU_KOI8_R_orthodox_ + +LANG=ru_RU.KOI8-R +Paskha=ðÁÓÈÁ + +21 ÓÅÎÔ. òÏÖÄÅÓÔ×Ï ðÒÅÓ×ÑÔÏÊ âÏÇÏÒÏÄÉÃÙ +27 ÓÅÎÔ. ÷ÏÚÄ×ÉÖÅÎÉÅ ëÒÅÓÔÁ çÏÓÐÏÄÎÑ +14 ÏËÔ. ðÏËÒÏ× ðÒÅÓ×ÑÔÏÊ âÏÇÏÒÏÄÉÃÙ + 4 ÄÅË. ÷×ÅÄÅÎÉÅ ×Ï ÈÒÁÍ ðÒÅÓ×ÑÔÏÊ âÏÇÏÒÏÄÉÃÙ + 7 ÑÎ×. òÏÖÄÅÓÔ×Ï èÒÉÓÔÏ×Ï +14 ÑÎ×. ïÂÒÅÚÁÎÉÅ çÏÓÐÏÄÎÅ +19 ÑÎ×. âÏÇÏÑ×ÌÅÎÉÅ ÉÌÉ ëÒÅÝÅÎÉÅ çÏÓÐÏÄÎÅ +15 ÆÅ×Ò. óÒÅÔÅÎÉÅ çÏÓÐÏÄÎÅ +ðÁÓÈÁ-48 ÷ÅÌÉËÉÊ ðÏÓÔ +ðÁÓÈÁ-7 ÷ÈÏÄ çÏÓÐÏÄÅÎØ × éÅÒÕÓÁÌÉÍ. ÷ÅÒÂÎÏÅ ÷ÏÓËÒÅÓÅÎØÅ +ðÁÓÈÁ-3 ÷ÅÌÉËÉÊ þÅÔ×ÅÒÇ +ðÁÓÈÁ-2 óÔÒÁÓÔÎÁÑ ðÑÔÎÉÃÁ +ðÁÓÈÁ ÷ÏÓËÒÅÓÅÎÉÅ èÒÉÓÔÏ×Ï +ðÁÓÈÁ+39 ÷ÏÚÎÅÓÅÎÉÅ +ðÁÓÈÁ+49 äÅÎØ ó×ÑÔÏÊ ôÒÏÉÃÙ. ðÑÔÉÄÅÓÑÔÎÉÃÁ + 7 ÁÐÒ. âÌÁÇÏ×ÅÝÅÎÉÅ ðÒÅÓ×ÑÔÏÊ âÏÇÏÒÏÄÉÃÙ + 7 ÉÀÌÑ òÏÖÄÅÓÔ×Ï éÏÁÎÎÁ ðÒÅÄÔÅÞÉ +12 ÉÀÌÑ äÅÎØ Ó×ÑÔÙÈ ÐÅÒ×Ï×ÅÒÈÏ×ÎÙÈ ÁÐÏÓÔÏÌÏ× ðÅÔÒÁ É ðÁ×ÌÁ +19 Á×Ç. ðÒÅÏÂÒÁÖÅÎÉÅ çÏÓÐÏÄÎÅ +28 Á×Ç. õÓÐÅÎÉÅ ðÒÅÓ×ÑÔÏÊ âÏÇÏÒÏÄÉÃÙ +11 ÓÅÎÔ. õÓÅËÎÏ×ÅÎÉÅ ÇÌÁ×Ù éÏÁÎÎÁ ðÒÅÄÔÅÞÉ + +#endif /* !_ru_RU_KOI8_R_orthodox_ */ + diff --git a/usr.bin/calendar/calendars/ru_RU.KOI8-R/calendar.pagan b/usr.bin/calendar/calendars/ru_RU.KOI8-R/calendar.pagan new file mode 100644 index 000000000000..7cdd1a6048e6 --- /dev/null +++ b/usr.bin/calendar/calendars/ru_RU.KOI8-R/calendar.pagan @@ -0,0 +1,42 @@ +/* + * ñÚÙÞÅÓËÉÅ ÐÒÁÚÄÎÉËÉ + * + * $FreeBSD$ + */ + +#ifndef _ru_RU_KOI8_R_pagan_ +#define _ru_RU_KOI8_R_pagan_ + +LANG=ru_RU.KOI8-R +Paskha=ðÁÓÈÁ + +21 ÄÅË.* úÉÍÎÅÅ ÓÏÌÎÃÅÓÔÏÑÎÉÅ +25 ÄÅË. ëÏÌÑÄÁ (ÓÄ×ÉÎÕÔÏÅ ÚÉÍÎÅÅ ÓÏÌÎÃÅÓÔÏÑÎÉÅ) + 6 ÑÎ×. äÅÎØ ëÁÝÅÑ É ÷ÅÌÅÓÁ +24 ÆÅ×Ò. äÅÎØ ÷ÅÌÅÓÁ +29 ÆÅ×Ò. äÅÎØ ëÁÝÅÑ + 1 ÍÁÒÔÁ äÅÎØ íÁÒÅÎÙ +14 ÍÁÒÔÁ îÏ×ÙÊ çÏÄ, ï×ÓÅÎØ ÍÁÌÙÊ +ðÁÓÈÁ-55 íÁÓÌÅÎÉÃÁ +ðÁÓÈÁ+7 ëÒÁÓÎÁÑ çÏÒËÁ +ðÁÓÈÁ+16 òÁÄÕÎÉÃÁ +20 ÍÁÒÔÁ* ÷ÅÓÅÎÎÅÅ ÒÁ×ÎÏÄÅÎÓÔ×ÉÅ + 7 ÁÐÒ. äÅÎØ íÁÒÅÎÙ (ÓÄ×ÉÎÕÔÏÅ ×ÅÓÅÎÎÅÅ ÒÁ×ÎÏÄÅÎÓÔ×ÉÅ) + 6 ÍÁÑ äÅÎØ äÁÖØÂÏÇÁ, ï×ÓÅÎØ ÂÏÌØÛÏÊ +22 ÍÁÑ ñÒÉÌÉÎ äÅÎØ +15 ÉÀÎÑ äÅÎØ ôÒÉÇÌÁ×Á +21 ÉÀÎÑ* ìÅÔÎÅÅ ÓÏÌÎÃÅÓÔÏÑÎÉÅ + 1 ÉÀÌÑ òÕÓÁÌØÎÁÑ îÅÄÅÌÑ + 7 ÉÀÌÑ ëÕÐÁÌÁ (ÓÄ×ÉÎÕÔÏÅ ÌÅÔÎÅÅ ÓÏÌÎÃÅÓÔÏÑÎÉÅ) +27 ÉÀÌÑ ïÔÂÏÒ ÖÅÒÔ× ðÅÒÕÎÕ, ÒÕÓÁÌÉÉ + 2 Á×Ç. ðÅÒÕÎÏ× äÅÎØ +21 Á×Ç. äÅÎØ óÔÒÉÂÏÇÁ +28 Á×Ç. õÓÐÅÎÉÅ úÌÁÔÏÇÏÒËÉ +14 ÓÅÎÔ. äÅÎØ ÷ÏÌÈÁ úÍÅÅ×ÉÞÁ +22 ÓÅÎÔ.* ðÏ×ÏÒÏÔ Ë ÚÉÍÅ (ÏÓÅÎÎÅÅ ÒÁ×ÎÏÄÅÎÓÔ×ÉÅ) +10 ÎÏÑÂ. äÅÎØ íÁËÏÛÉ +21 ÎÏÑÂ. äÅÎØ ó×ÁÒÏÇÁ É óÅÍÁÒÇÌÁ + 9 ÄÅË. äÅÎØ äÁÖØÂÏÇÁ É íÁÒÅÎÙ + +#endif /* !_ru_RU_KOI8_R_pagan_ */ + diff --git a/usr.bin/calendar/calendars/ru_RU.UTF-8/calendar.all b/usr.bin/calendar/calendars/ru_RU.UTF-8/calendar.all new file mode 100644 index 000000000000..038bfb0f09d7 --- /dev/null +++ b/usr.bin/calendar/calendars/ru_RU.UTF-8/calendar.all @@ -0,0 +1,16 @@ +/* + * РуÑÑкий календарь + * + * $FreeBSD$ + */ + +#ifndef _ru_RU_UTF_8_all_ +#define _ru_RU_UTF_8_all_ + +#include +#include +#include +#include +#include + +#endif /* !_ru_RU_UTF_8_all_ */ diff --git a/usr.bin/calendar/calendars/ru_RU.UTF-8/calendar.common b/usr.bin/calendar/calendars/ru_RU.UTF-8/calendar.common new file mode 100644 index 000000000000..8c062862e7f8 --- /dev/null +++ b/usr.bin/calendar/calendars/ru_RU.UTF-8/calendar.common @@ -0,0 +1,105 @@ +/* + * РоÑÑийÑкие праздники + * + * $FreeBSD$ + */ + +#ifndef _ru_RU_UTF_8_common_ +#define _ru_RU_UTF_8_common_ + +LANG=ru_RU.UTF-8 + +12 Ñнв. День работника прокуратуры +13 Ñнв. День роÑÑийÑкой печати +14 Ñнв. Старый Ðовый год +21 Ñнв. День инженерных войÑк +25 Ñнв. ТатьÑнин день. СтуденчеÑкий праздник + 8 февр. День роÑÑийÑкой науки +10 февр. День дипломатичеÑкого работника + 1 марта Ð’Ñемирный день гражданÑкой обороны +03/SunSecond День работников геодезии и картографии +11 марта День работника органов Ð½Ð°Ñ€ÐºÐ¾ÐºÐ¾Ð½Ñ‚Ñ€Ð¾Ð»Ñ +18 марта День налоговой полиции +03/SunThird День работников торговли, бытового обÑÐ»ÑƒÐ¶Ð¸Ð²Ð°Ð½Ð¸Ñ Ð½Ð°ÑÐµÐ»ÐµÐ½Ð¸Ñ Ð¸ жилищно-коммунального хозÑйÑтва +27 марта Международный день театра +27 марта День внутренних войÑк + 1 апр. День Ñмеха + 2 апр. День ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ Ð½Ð°Ñ€Ð¾Ð´Ð¾Ð² +04/SunFirst День геолога +12 апр. День коÑмонавтики +04/SunSecond День войÑк противовоздушной обороны +26 апр. День памÑти погибших в радиационных авариÑÑ… и катаÑтрофах +30 апр. День пожарной охраны + 7 Ð¼Ð°Ñ Ð”ÐµÐ½ÑŒ радио +17 Ð¼Ð°Ñ ÐœÐµÐ¶Ð´ÑƒÐ½Ð°Ñ€Ð¾Ð´Ð½Ñ‹Ð¹ день телекоммуникаций +18 Ð¼Ð°Ñ ÐœÐµÐ¶Ð´ÑƒÐ½Ð°Ñ€Ð¾Ð´Ð½Ñ‹Ð¹ день музеев +24 Ð¼Ð°Ñ Ð”ÐµÐ½ÑŒ ÑлавÑнÑкой пиÑьменноÑти и культуры +26 Ð¼Ð°Ñ Ð”ÐµÐ½ÑŒ роÑÑийÑкого предпринимательÑтва +27 Ð¼Ð°Ñ ÐžÐ±Ñ‰ÐµÑ€Ð¾ÑÑийÑкий день библиотек +28 Ð¼Ð°Ñ Ð”ÐµÐ½ÑŒ пограничника +30 Ð¼Ð°Ñ Ð”ÐµÐ½ÑŒ пожарной охраны +31 Ð¼Ð°Ñ Ð”ÐµÐ½ÑŒ РоÑÑийÑкой Ðдвокатуры +05/SunLast День химика + 1 Ð¸ÑŽÐ½Ñ Ð”ÐµÐ½ÑŒ защиты детей + 5 Ð¸ÑŽÐ½Ñ Ð”ÐµÐ½ÑŒ Ñколога + 6 Ð¸ÑŽÐ½Ñ ÐŸÑƒÑˆÐºÐ¸Ð½Ñкий день + 8 Ð¸ÑŽÐ½Ñ Ð”ÐµÐ½ÑŒ Ñоциального работника +06/SunSecond День работников легкой промышленноÑти +06/SunThird День медицинÑкого работника +22 Ð¸ÑŽÐ½Ñ Ð”ÐµÐ½ÑŒ памÑти и Ñкорби (Ðачало Великой ОтечеÑтвенной Войны, 1941 год) +27 Ð¸ÑŽÐ½Ñ Ð”ÐµÐ½ÑŒ молодежи +29 Ð¸ÑŽÐ½Ñ Ð”ÐµÐ½ÑŒ партизан и подпольщиков +06/SatLast День Ð¸Ð·Ð¾Ð±Ñ€ÐµÑ‚Ð°Ñ‚ÐµÐ»Ñ Ð¸ рационализатора +07/SunFirst День работников морÑкого и речного флота +07/SunSecond День рыбака +07/SunSecond День роÑÑийÑкой почты +07/SunThird День металлурга +07/SunLast День Военно-МорÑкого Флота +28 Ð¸ÑŽÐ»Ñ Ð”ÐµÐ½ÑŒ ÐºÑ€ÐµÑ‰ÐµÐ½Ð¸Ñ Ð ÑƒÑи + 6 авг. День железнодорожных войÑк +08/SunFirst День железнодорожника +12 авг. День военно-воздушных Ñил +08/SunSecond День ÑÑ‚Ñ€Ð¾Ð¸Ñ‚ÐµÐ»Ñ +08/SunThird День Воздушного Флота +22 авг. День гоÑударÑтвенного флага +27 авг. День кино +08/SunLast День шахтера + 1 Ñент. День знаний + 2 Ñент. День роÑÑийÑкой гвардии + 3 Ñент. День ÑолидарноÑти в борьбе Ñ Ñ‚ÐµÑ€Ñ€Ð¾Ñ€Ð¸Ð·Ð¼Ð¾Ð¼ + 4 Ñент. День ÑпециалиÑта по Ñдерному обеÑпечению +09/SunFirst День работников нефтÑной и газовой промышленноÑти +09/SunSecond День танкиÑта +09/SunThird День работников леÑа +28 Ñент. День работника атомной промышленноÑти +09/SunLast День машиноÑÑ‚Ñ€Ð¾Ð¸Ñ‚ÐµÐ»Ñ + 1 окт. День пожилых людей + 1 окт. День Ñухопутных войÑк + 4 окт. День коÑмичеÑких войÑк + 5 окт. День ÑƒÑ‡Ð¸Ñ‚ÐµÐ»Ñ +14 окт. Международный день Ñтандартизации +10/SunSecond День работников ÑельÑкого хозÑйÑтва и перерабатывающей промышленноÑти +10/SunThird День работников дорожного хозÑйÑтва +24 окт. Международный день ООР+25 окт. День таможенника +30 окт. День памÑти жертв политичеÑких репреÑÑий +10/SunLast День работников автомобильного транÑпорта + 7 ноÑб. День октÑбрьÑкой революции 1917 года + 9 ноÑб. Ð’Ñемирный день качеÑтва +10 ноÑб. День милиции +16 ноÑб. День морÑкой пехоты +17 ноÑб. Международный день Ñтудентов +19 ноÑб. День ракетных войÑк и артиллерии +21 ноÑб. День работников налоговых органов +26 ноÑб. Ð’Ñемирный день информации +11/SunLast День матери + 1 дек. Ð’Ñемирный день борьбы Ñо СПИДом + 3 дек. День юриÑта + 9 дек. День Героев ОтечеÑтва +12 дек. День КонÑтитуции +17 дек. День ракетных войÑк ÑтратегичеÑкого Ð½Ð°Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ +20 дек. День работника органов безопаÑноÑти +22 дек. День Ñнергетика +27 дек. День ÑпаÑÐ°Ñ‚ÐµÐ»Ñ + +#endif /* !_ru_RU_UTF_8_common_ */ diff --git a/usr.bin/calendar/calendars/ru_RU.UTF-8/calendar.holiday b/usr.bin/calendar/calendars/ru_RU.UTF-8/calendar.holiday new file mode 100644 index 000000000000..875eec924f18 --- /dev/null +++ b/usr.bin/calendar/calendars/ru_RU.UTF-8/calendar.holiday @@ -0,0 +1,25 @@ +/* + * РоÑÑийÑкие праздники (нерабочие "краÑные" дни) + * + * $FreeBSD$ + */ + +#ifndef _ru_RU_UTF_8_holiday_ +#define _ru_RU_UTF_8_holiday_ + +LANG=ru_RU.UTF-8 + + 1 Ñнв. Ðовый год + 2 Ñнв. Ðовогодние каникулы + 3 Ñнв. Ðовогодние каникулы + 4 Ñнв. Ðовогодние каникулы + 5 Ñнв. Ðовогодние каникулы + 7 Ñнв. РождеÑтво ХриÑтово +23 февр. День защитника ОтечеÑтва + 8 марта Международный женÑкий день + 1 Ð¼Ð°Ñ ÐŸÑ€Ð°Ð·Ð´Ð½Ð¸Ðº ВеÑны и Труда + 9 Ð¼Ð°Ñ Ð”ÐµÐ½ÑŒ Победы +12 Ð¸ÑŽÐ½Ñ Ð”ÐµÐ½ÑŒ РоÑÑии + 4 ноÑб. День народного единÑтва + +#endif /* !_ru_RU_UTF_8_holiday_ */ diff --git a/usr.bin/calendar/calendars/ru_RU.UTF-8/calendar.military b/usr.bin/calendar/calendars/ru_RU.UTF-8/calendar.military new file mode 100644 index 000000000000..57ed6f9b7628 --- /dev/null +++ b/usr.bin/calendar/calendars/ru_RU.UTF-8/calendar.military @@ -0,0 +1,28 @@ +/* + * Дни воинÑкой Ñлавы РоÑÑии + * + * $FreeBSD$ + */ + +#ifndef _ru_RU_UTF_8_military_ +#define _ru_RU_UTF_8_military_ + +LANG=ru_RU.UTF-8 + +27 Ñнв. День ÑнÑÑ‚Ð¸Ñ Ð±Ð»Ð¾ÐºÐ°Ð´Ñ‹ города Ленинграда (1944 год) + 2 февр. День разгрома ÑоветÑкими войÑками немецко-фашиÑÑ‚Ñких войÑк в СталинградÑкой битве (1943 год) +23 февр. День победы КраÑной Ðрмии над кайзеровÑкими войÑками Германии (1918 год) +18 апр. День победы руÑÑких воинов кнÑÐ·Ñ ÐлекÑандра ÐевÑкого над немецкими рыцарÑми на ЧудÑком озере (Ледовое побоище, 1242 год) +10 Ð¸ÑŽÐ»Ñ Ð”ÐµÐ½ÑŒ победы руÑÑкой армии под командованием Петра Первого над шведами в ПолтавÑком Ñражении (1709 год) + 9 авг. День первой в роÑÑийÑкой иÑтории морÑкой победы руÑÑкого флота под командованием Петра Первого над шведами у мыÑа Гангут (1714 год) +23 авг. День разгрома ÑоветÑкими войÑками немецко-фашиÑÑ‚Ñких войÑк в КурÑкой битве (1943 год) + 2 Ñент. День Ð¾ÐºÐ¾Ð½Ñ‡Ð°Ð½Ð¸Ñ Ð’Ñ‚Ð¾Ñ€Ð¾Ð¹ мировой войны (1945 год) + 8 Ñент. День БородинÑкого ÑÑ€Ð°Ð¶ÐµÐ½Ð¸Ñ Ñ€ÑƒÑÑкой армии под командованием Ðœ.И. Кутузова Ñ Ñ„Ñ€Ð°Ð½Ñ†ÑƒÐ·Ñкой армией (1812 год) +11 Ñент. День победы руÑÑкой ÑÑкадры под командованием Ф.Ф. Ушакова над турецкой ÑÑкадрой у мыÑа Тендра (1790 год) +21 Ñент. День победы руÑÑких полков во главе Ñ Ð²ÐµÐ»Ð¸ÐºÐ¸Ð¼ кнÑзем Дмитрием ДонÑким над монголо-татарÑкими войÑками в КуликовÑкой битве (1380 год) + 4 ноÑб. День оÑÐ²Ð¾Ð±Ð¾Ð¶Ð´ÐµÐ½Ð¸Ñ ÐœÐ¾Ñквы Ñилами народного Ð¾Ð¿Ð¾Ð»Ñ‡ÐµÐ½Ð¸Ñ Ð¿Ð¾Ð´ руководÑтвом Кузьмы Минина и Ð”Ð¼Ð¸Ñ‚Ñ€Ð¸Ñ ÐŸÐ¾Ð¶Ð°Ñ€Ñкого от польÑких интервентов (1612 год) + 1 дек. День победы руÑÑкой ÑÑкадры под командованием П.С. Ðахимова над турецкой ÑÑкадрой у мыÑа Синоп (1853 год) + 5 дек. День начала контрнаÑÑ‚ÑƒÐ¿Ð»ÐµÐ½Ð¸Ñ ÑоветÑких войÑк против немецко-фашиÑÑ‚Ñких войÑк в битве под МоÑквой (1941 год) +24 дек. День взÑÑ‚Ð¸Ñ Ñ‚ÑƒÑ€ÐµÑ†ÐºÐ¾Ð¹ крепоÑти Измаил руÑÑкими войÑками под командованием Ð.Ð’. Суворова (1790 год) + +#endif /* !_ru_RU_UTF_8_military_ */ diff --git a/usr.bin/calendar/calendars/ru_RU.UTF-8/calendar.orthodox b/usr.bin/calendar/calendars/ru_RU.UTF-8/calendar.orthodox new file mode 100644 index 000000000000..575a36c3e088 --- /dev/null +++ b/usr.bin/calendar/calendars/ru_RU.UTF-8/calendar.orthodox @@ -0,0 +1,36 @@ +/* + * ПравоÑлавные праздники + * + * $FreeBSD$ + */ + +#ifndef _ru_RU_UTF_8_orthodox_ +#define _ru_RU_UTF_8_orthodox_ + +LANG=ru_RU.UTF-8 +Paskha=ПаÑха + +21 Ñент. РождеÑтво ПреÑвÑтой Богородицы +27 Ñент. Воздвижение КреÑта ГоÑÐ¿Ð¾Ð´Ð½Ñ +14 окт. Покров ПреÑвÑтой Богородицы + 4 дек. Введение во храм ПреÑвÑтой Богородицы + 7 Ñнв. РождеÑтво ХриÑтово +14 Ñнв. Обрезание ГоÑподне +19 Ñнв. БогоÑвление или Крещение ГоÑподне +15 февр. Сретение ГоÑподне +ПаÑха-48 Великий ПоÑÑ‚ +ПаÑха-7 Вход ГоÑподень в ИеруÑалим. Вербное ВоÑкреÑенье +ПаÑха-3 Великий Четверг +ПаÑха-2 СтраÑÑ‚Ð½Ð°Ñ ÐŸÑтница +ПаÑха ВоÑкреÑение ХриÑтово +ПаÑха+39 ВознеÑение +ПаÑха+49 День СвÑтой Троицы. ПÑтидеÑÑтница + 7 апр. Благовещение ПреÑвÑтой Богородицы + 7 Ð¸ÑŽÐ»Ñ Ð Ð¾Ð¶Ð´ÐµÑтво Иоанна Предтечи +12 Ð¸ÑŽÐ»Ñ Ð”ÐµÐ½ÑŒ ÑвÑÑ‚Ñ‹Ñ… первоверховных апоÑтолов Петра и Павла +19 авг. Преображение ГоÑподне +28 авг. УÑпение ПреÑвÑтой Богородицы +11 Ñент. УÑекновение главы Иоанна Предтечи + +#endif /* !_ru_RU_UTF_8_orthodox_ */ + diff --git a/usr.bin/calendar/calendars/ru_RU.UTF-8/calendar.pagan b/usr.bin/calendar/calendars/ru_RU.UTF-8/calendar.pagan new file mode 100644 index 000000000000..5074f95fcbcf --- /dev/null +++ b/usr.bin/calendar/calendars/ru_RU.UTF-8/calendar.pagan @@ -0,0 +1,42 @@ +/* + * ЯзычеÑкие праздники + * + * $FreeBSD$ + */ + +#ifndef _ru_RU_UTF_8_pagan_ +#define _ru_RU_UTF_8_pagan_ + +LANG=ru_RU.UTF-8 +Paskha=ПаÑха + +21 дек.* Зимнее ÑолнцеÑтоÑние +25 дек. КолÑда (Ñдвинутое зимнее ÑолнцеÑтоÑние) + 6 Ñнв. День ÐšÐ°Ñ‰ÐµÑ Ð¸ ВелеÑа +24 февр. День ВелеÑа +29 февр. День ÐšÐ°Ñ‰ÐµÑ + 1 марта День Марены +14 марта Ðовый Год, ОвÑень малый +ПаÑха-55 МаÑленица +ПаÑха+7 КраÑÐ½Ð°Ñ Ð“Ð¾Ñ€ÐºÐ° +ПаÑха+16 Радуница +20 марта* ВеÑеннее равноденÑтвие + 7 апр. День Марены (Ñдвинутое веÑеннее равноденÑтвие) + 6 Ð¼Ð°Ñ Ð”ÐµÐ½ÑŒ Дажьбога, ОвÑень большой +22 Ð¼Ð°Ñ Ð¯Ñ€Ð¸Ð»Ð¸Ð½ День +15 Ð¸ÑŽÐ½Ñ Ð”ÐµÐ½ÑŒ Триглава +21 июнÑ* Летнее ÑолнцеÑтоÑние + 1 Ð¸ÑŽÐ»Ñ Ð ÑƒÑÐ°Ð»ÑŒÐ½Ð°Ñ ÐÐµÐ´ÐµÐ»Ñ + 7 Ð¸ÑŽÐ»Ñ ÐšÑƒÐ¿Ð°Ð»Ð° (Ñдвинутое летнее ÑолнцеÑтоÑние) +27 Ð¸ÑŽÐ»Ñ ÐžÑ‚Ð±Ð¾Ñ€ жертв Перуну, руÑалии + 2 авг. Перунов День +21 авг. День Стрибога +28 авг. УÑпение Златогорки +14 Ñент. День Волха Змеевича +22 Ñент.* Поворот к зиме (оÑеннее равноденÑтвие) +10 ноÑб. День Макоши +21 ноÑб. День Сварога и Семаргла + 9 дек. День Дажьбога и Марены + +#endif /* !_ru_RU_UTF_8_pagan_ */ + diff --git a/usr.bin/calendar/calendars/uk_UA.KOI8-U/calendar.all b/usr.bin/calendar/calendars/uk_UA.KOI8-U/calendar.all new file mode 100644 index 000000000000..1dfa26220475 --- /dev/null +++ b/usr.bin/calendar/calendars/uk_UA.KOI8-U/calendar.all @@ -0,0 +1,14 @@ +/* + * õËÒÁ§ÎÓØËÉÊ ËÁÌÅÎÄÁÒ + * + * $FreeBSD$ + */ + +#ifndef _uk_UA_KOI8_U_all_ +#define _uk_UA_KOI8_U_all_ + +#include +#include +#include + +#endif /* !_uk_UA_KOI8_U_all_ */ diff --git a/usr.bin/calendar/calendars/uk_UA.KOI8-U/calendar.holiday b/usr.bin/calendar/calendars/uk_UA.KOI8-U/calendar.holiday new file mode 100644 index 000000000000..08559d89bc2d --- /dev/null +++ b/usr.bin/calendar/calendars/uk_UA.KOI8-U/calendar.holiday @@ -0,0 +1,22 @@ +/* + * õËÒÁ§ÎÓØ˦ ÄÅÒÖÁ×Φ Ó×ÑÔÁ + * + * $FreeBSD$ + */ + +#ifndef _uk_UA_KOI8_U_holiday_ +#define _uk_UA_KOI8_U_holiday_ + +LANG=uk_UA.KOI8-U +Paskha=÷ÅÌÉËÄÅÎØ + +ó¦Þ 01 îÏ×ÉÊ ò¦Ë +ó¦Þ 07 ò¦ÚÄ×Ï èÒÉÓÔÏ×Å +âÅÒ 08 8 âÅÒÅÚÎÑ - í¦ÖÎÁÒÏÄÎÉÊ ö¦ÎÏÞÉÊ äÅÎØ +ôÒÁ 01 1 ôÒÁ×ÎÑ - äÅÎØ ðÒÁæ +ôÒÁ 09 äÅÎØ ðÅÒÅÍÏÇÉ +÷ÅÌÉËÄÅÎØ+49 ôÒ¦ÊÃÑ +þÅÒ 28 äÅÎØ ëÏÎÓÔÉÔÕæ§ õËÒÁ§ÎÉ +óÅÒ 24 äÅÎØ îÅÚÁÌÅÖÎÏÓÔ¦ õËÒÁ§ÎÉ + +#endif /* !_uk_UA_KOI8_U_holiday_ */ diff --git a/usr.bin/calendar/calendars/uk_UA.KOI8-U/calendar.misc b/usr.bin/calendar/calendars/uk_UA.KOI8-U/calendar.misc new file mode 100644 index 000000000000..b49769d104ac --- /dev/null +++ b/usr.bin/calendar/calendars/uk_UA.KOI8-U/calendar.misc @@ -0,0 +1,18 @@ +/* + * ¶ÎÛ¦ æËÁצ ÄÁÔÉ + * + * $FreeBSD$ + */ + +#ifndef _uk_UA_KOI8_U_misc_ +#define _uk_UA_KOI8_U_misc_ + +LANG=uk_UA.KOI8-U + +/* ðÏÓÔÁÎÏ×Á ëÁ¦ÎÅÔÕ í¦Î¦ÓÔÒ¦× õËÒÁ§ÎÉ ×¦Ä 13 ÔÒÁ×ÎÑ 1996 Ò. N 509 + * "ðÒÏ ÐÏÒÑÄÏË ÏÂÞÉÓÌÅÎÎÑ ÞÁÓÕ ÎÁ ÔÅÒÉÔÏÒ¦§ õËÒÁ§ÎÉ" + */ +âÅÒ îÄ-1 ðÅÒÅÈ¦Ä ÎÁ ̦ÔÎ¦Ê ÞÁÓ (ÏÓÔÁÎÎÑ ÎÅĦÌÑ ÂÅÒÅÚÎÑ) +öÏ× îÄ-1 ðÅÒÅÈ¦Ä ÎÁ ÚÉÍÏ×ÉÊ ÞÁÓ (ÏÓÔÁÎÎÑ ÎÅĦÌÑ ÖÏ×ÔÎÑ) + +#endif /* !_uk_UA_KOI8_U_misc_ */ diff --git a/usr.bin/calendar/calendars/uk_UA.KOI8-U/calendar.orthodox b/usr.bin/calendar/calendars/uk_UA.KOI8-U/calendar.orthodox new file mode 100644 index 000000000000..797c8c184f10 --- /dev/null +++ b/usr.bin/calendar/calendars/uk_UA.KOI8-U/calendar.orthodox @@ -0,0 +1,35 @@ +/* + * ðÒÁ×ÏÓÌÁ×Φ Ó×ÑÔÁ + * + * $FreeBSD$ + */ + +#ifndef _uk_UA_KOI8_U_orthodox_ +#define _uk_UA_KOI8_U_orthodox_ + +LANG=uk_UA.KOI8-U +Paskha=÷ÅÌÉËÄÅÎØ + + 7 ó¦Þ ò¦ÚÄ×Ï èÒÉÓÔÏ×Å +19 ó¦Þ âÏÇÏÑ×ÌÅÎÎÑ ÁÂÏ èÒÅÝÅÎÎÑ çÏÓÐÏÄΤ +15 ìÀÔ óÔÒ¦ÔÅÎÎÑ çÏÓÐÏÄΤ +÷ÅÌÉËÄÅÎØ-46 ÷ÅÌÉËÉÊ ð¦ÓÔ +÷ÅÌÉËÄÅÎØ-7 ÷ÅÒÂÎÁ îÅĦÌÑ +÷ÅÌÉËÄÅÎØ-3 ÷ÅÌÉËÉÊ þÅÔ×ÅÒ +÷ÅÌÉËÄÅÎØ-2 óÔÒÁÓÎÁ ð'ÑÔÎÉÃÑ +÷ÅÌÉËÄÅÎØ ÷ÏÓËÒÅÓ¦ÎÎÑ èÒÉÓÔÏ×Å +÷ÅÌÉËÄÅÎØ+39 ÷ÏÚÎÅÓ¦ÎÎÑ çÏÓÐÏÄΤ +÷ÅÌÉËÄÅÎØ+49 äÅÎØ ó×ÑÔϧ ôÒ¦Êæ, ð'ÑÔÉÄÅÓÑÔÎÉÃÑ +÷ÅÌÉËÄÅÎØ+60 ó×ÑÔÏ Ô¦ÌÁ èÒÉÓÔÏ×ÏÇÏ + 7 ëצ âÌÁÇÏצÝÅÎÎÑ ðÒÅÓ×ÑÔϧ ä¦×É íÁÒ¦§ + 7 ìÉÐ ò¦ÚÄ×Ï Ó×ÑÔÏÇÏ ¶×ÁÎÁ èÒÅÓÔÉÔÅÌÑ +12 ìÉÐ ó×ÑÔÉÈ ÷ÅÒÈÏ×ÎÉÈ ÁÐÏÓÔÏÌ¦× ðÅÔÒÁ ¦ ðÁ×ÌÁ +19 óÅÒ ðÒÅÏÂÒÁÖÅÎÎÑ çÏÓÐÏÄΤ +28 óÅÒ õÓÐÅÎÎÑ ðÒÅÓ×ÑÔϧ âÏÇÏÒÏÄÉæ +11 ÷ÅÒ õÓ¦ËÎÏ×ÅÎÎÑ ÞÅÓÎϧ ÇÏÌÏ×É Ó×ÑÔÏÇÏ ¶×ÁÎÁ èÒÅÓÔÉÔÅÌÑ +21 ÷ÅÒ ò¦ÚÄ×Ï ðÒÅÓ×ÑÔϧ âÏÇÏÒÏÄÉæ +27 ÷ÅÒ ÷ÏÚÄ×ÉÖÅÎÎÑ þÅÓÎÏÇÏ èÒÅÓÔÁ +14 öÏ× ðÏËÒÏ×Á ðÒÅÓ×ÑÔϧ âÏÇÏÒÏÄÉæ + 4 çÒÕ ÷×ÅÄÅÎÎÑ ÄÏ ÈÒÁÍÕ ðÒÅÓ×ÑÔϧ âÏÇÏÒÏÄÉæ + +#endif /* !_uk_UA_KOI8_U_orthodox_ */ diff --git a/usr.bin/calendar/dates.c b/usr.bin/calendar/dates.c new file mode 100644 index 000000000000..e30e86485a60 --- /dev/null +++ b/usr.bin/calendar/dates.c @@ -0,0 +1,453 @@ +/*- + * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * + * Copyright (c) 1992-2009 Edwin Groothuis . + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + */ + +#include +__FBSDID("$FreeBSD$"); + +#include +#include +#include +#include + +#include "calendar.h" + +struct cal_year { + int year; /* 19xx, 20xx, 21xx */ + int easter; /* Julian day */ + int paskha; /* Julian day */ + int cny; /* Julian day */ + int firstdayofweek; /* 0 .. 6 */ + struct cal_month *months; + struct cal_year *nextyear; +}; + +struct cal_month { + int month; /* 01 .. 12 */ + int firstdayjulian; /* 000 .. 366 */ + int firstdayofweek; /* 0 .. 6 */ + struct cal_year *year; /* points back */ + struct cal_day *days; + struct cal_month *nextmonth; +}; + +struct cal_day { + int dayofmonth; /* 01 .. 31 */ + int julianday; /* 000 .. 366 */ + int dayofweek; /* 0 .. 6 */ + struct cal_day *nextday; + struct cal_month *month; /* points back */ + struct cal_year *year; /* points back */ + struct event *events; +}; + +int debug_remember = 0; +static struct cal_year *hyear = NULL; + +/* 1-based month, 0-based days, cumulative */ +int cumdaytab[][14] = { + {0, -1, 30, 58, 89, 119, 150, 180, 211, 242, 272, 303, 333, 364}, + {0, -1, 30, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334, 365}, +}; +/* 1-based month, individual */ +static int *monthdays; +int monthdaytab[][14] = { + {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31, 30}, + {0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31, 30}, +}; + +static struct cal_day * find_day(int yy, int mm, int dd); + +static void +createdate(int y, int m, int d) +{ + struct cal_year *py, *pyp; + struct cal_month *pm, *pmp; + struct cal_day *pd, *pdp; + int *cumday; + + pyp = NULL; + py = hyear; + while (py != NULL) { + if (py->year == y + 1900) + break; + pyp = py; + py = py->nextyear; + } + + if (py == NULL) { + struct tm td; + time_t t; + py = (struct cal_year *)calloc(1, sizeof(struct cal_year)); + py->year = y + 1900; + py->easter = easter(y); + py->paskha = paskha(y); + + td = tm0; + td.tm_year = y; + td.tm_mday = 1; + t = mktime(&td); + localtime_r(&t, &td); + py->firstdayofweek = td.tm_wday; + + if (pyp != NULL) + pyp->nextyear = py; + } + if (pyp == NULL) { + /* The very very very first one */ + hyear = py; + } + + pmp = NULL; + pm = py->months; + while (pm != NULL) { + if (pm->month == m) + break; + pmp = pm; + pm = pm->nextmonth; + } + + if (pm == NULL) { + pm = (struct cal_month *)calloc(1, sizeof(struct cal_month)); + pm->year = py; + pm->month = m; + cumday = cumdaytab[isleap(y)]; + pm->firstdayjulian = cumday[m] + 2; + pm->firstdayofweek = + (py->firstdayofweek + pm->firstdayjulian -1) % 7; + if (pmp != NULL) + pmp->nextmonth = pm; + } + if (pmp == NULL) + py->months = pm; + + pdp = NULL; + pd = pm->days; + while (pd != NULL) { + pdp = pd; + pd = pd->nextday; + } + + if (pd == NULL) { /* Always true */ + pd = (struct cal_day *)calloc(1, sizeof(struct cal_day)); + pd->month = pm; + pd->year = py; + pd->dayofmonth = d; + pd->julianday = pm->firstdayjulian + d - 1; + pd->dayofweek = (pm->firstdayofweek + d - 1) % 7; + if (pdp != NULL) + pdp->nextday = pd; + } + if (pdp == NULL) + pm->days = pd; +} + +void +generatedates(struct tm *tp1, struct tm *tp2) +{ + int y1, m1, d1; + int y2, m2, d2; + int y, m, d; + + y1 = tp1->tm_year; + m1 = tp1->tm_mon + 1; + d1 = tp1->tm_mday; + y2 = tp2->tm_year; + m2 = tp2->tm_mon + 1; + d2 = tp2->tm_mday; + + if (y1 == y2) { + if (m1 == m2) { + /* Same year, same month. Easy! */ + for (d = d1; d <= d2; d++) + createdate(y1, m1, d); + return; + } + /* + * Same year, different month. + * - Take the leftover days from m1 + * - Take all days from + * - Take the first days from m2 + */ + monthdays = monthdaytab[isleap(y1)]; + for (d = d1; d <= monthdays[m1]; d++) + createdate(y1, m1, d); + for (m = m1 + 1; m < m2; m++) + for (d = 1; d <= monthdays[m]; d++) + createdate(y1, m, d); + for (d = 1; d <= d2; d++) + createdate(y1, m2, d); + return; + } + /* + * Different year, different month. + * - Take the leftover days from y1-m1 + * - Take all days from y1- + * - Take all days from y2-[1 .. m2> + * - Take the first days of y2-m2 + */ + monthdays = monthdaytab[isleap(y1)]; + for (d = d1; d <= monthdays[m1]; d++) + createdate(y1, m1, d); + for (m = m1 + 1; m <= 12; m++) + for (d = 1; d <= monthdays[m]; d++) + createdate(y1, m, d); + for (y = y1 + 1; y < y2; y++) { + monthdays = monthdaytab[isleap(y)]; + for (m = 1; m <= 12; m++) + for (d = 1; d <= monthdays[m]; d++) + createdate(y, m, d); + } + monthdays = monthdaytab[isleap(y2)]; + for (m = 1; m < m2; m++) + for (d = 1; d <= monthdays[m]; d++) + createdate(y2, m, d); + for (d = 1; d <= d2; d++) + createdate(y2, m2, d); +} + +void +dumpdates(void) +{ + struct cal_year *y; + struct cal_month *m; + struct cal_day *d; + + y = hyear; + while (y != NULL) { + printf("%-5d (wday:%d)\n", y->year, y->firstdayofweek); + m = y->months; + while (m != NULL) { + printf("-- %-5d (julian:%d, dow:%d)\n", m->month, + m->firstdayjulian, m->firstdayofweek); + d = m->days; + while (d != NULL) { + printf(" -- %-5d (julian:%d, dow:%d)\n", + d->dayofmonth, d->julianday, d->dayofweek); + d = d->nextday; + } + m = m->nextmonth; + } + y = y->nextyear; + } +} + +int +remember_ymd(int yy, int mm, int dd) +{ + struct cal_year *y; + struct cal_month *m; + struct cal_day *d; + + if (debug_remember) + printf("remember_ymd: %d - %d - %d\n", yy, mm, dd); + + y = hyear; + while (y != NULL) { + if (y->year != yy) { + y = y->nextyear; + continue; + } + m = y->months; + while (m != NULL) { + if (m->month != mm) { + m = m->nextmonth; + continue; + } + d = m->days; + while (d != NULL) { + if (d->dayofmonth == dd) + return (1); + d = d->nextday; + continue; + } + return (0); + } + return (0); + } + return (0); +} + +int +remember_yd(int yy, int dd, int *rm, int *rd) +{ + struct cal_year *y; + struct cal_month *m; + struct cal_day *d; + + if (debug_remember) + printf("remember_yd: %d - %d\n", yy, dd); + + y = hyear; + while (y != NULL) { + if (y->year != yy) { + y = y->nextyear; + continue; + } + m = y->months; + while (m != NULL) { + d = m->days; + while (d != NULL) { + if (d->julianday == dd) { + *rm = m->month; + *rd = d->dayofmonth; + return (1); + } + d = d->nextday; + } + m = m->nextmonth; + } + return (0); + } + return (0); +} + +int +first_dayofweek_of_year(int yy) +{ + struct cal_year *y; + + y = hyear; + while (y != NULL) { + if (y->year == yy) + return (y->firstdayofweek); + y = y->nextyear; + } + + /* Should not happen */ + return (-1); +} + +int +first_dayofweek_of_month(int yy, int mm) +{ + struct cal_year *y; + struct cal_month *m; + + y = hyear; + while (y != NULL) { + if (y->year != yy) { + y = y->nextyear; + continue; + } + m = y->months; + while (m != NULL) { + if (m->month == mm) + return (m->firstdayofweek); + m = m->nextmonth; + } + /* No data for this month */ + return (-1); + } + + /* No data for this year. Error? */ + return (-1); +} + +int +walkthrough_dates(struct event **e) +{ + static struct cal_year *y = NULL; + static struct cal_month *m = NULL; + static struct cal_day *d = NULL; + + if (y == NULL) { + y = hyear; + m = y->months; + d = m->days; + *e = d->events; + return (1); + } + if (d->nextday != NULL) { + d = d->nextday; + *e = d->events; + return (1); + } + if (m->nextmonth != NULL) { + m = m->nextmonth; + d = m->days; + *e = d->events; + return (1); + } + if (y->nextyear != NULL) { + y = y->nextyear; + m = y->months; + d = m->days; + *e = d->events; + return (1); + } + + return (0); +} + +static struct cal_day * +find_day(int yy, int mm, int dd) +{ + struct cal_year *y; + struct cal_month *m; + struct cal_day *d; + + if (debug_remember) + printf("remember_ymd: %d - %d - %d\n", yy, mm, dd); + + y = hyear; + while (y != NULL) { + if (y->year != yy) { + y = y->nextyear; + continue; + } + m = y->months; + while (m != NULL) { + if (m->month != mm) { + m = m->nextmonth; + continue; + } + d = m->days; + while (d != NULL) { + if (d->dayofmonth == dd) + return (d); + d = d->nextday; + continue; + } + return (NULL); + } + return (NULL); + } + return (NULL); +} + +void +addtodate(struct event *e, int year, int month, int day) +{ + struct cal_day *d; + + d = find_day(year, month, day); + e->next = d->events; + d->events = e; +} diff --git a/usr.bin/calendar/day.c b/usr.bin/calendar/day.c new file mode 100644 index 000000000000..84562ccd9b30 --- /dev/null +++ b/usr.bin/calendar/day.c @@ -0,0 +1,109 @@ +/*- + * SPDX-License-Identifier: BSD-3-Clause + * + * Copyright (c) 1989, 1993, 1994 + * The Regents of the University of California. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include +__FBSDID("$FreeBSD$"); + +#include +#include +#include +#include +#include +#include + +#include "calendar.h" + +static time_t time1, time2; +const struct tm tm0; +char dayname[100]; +int year1, year2; + + +void +settimes(time_t now, int before, int after, int friday, struct tm *tp1, struct tm *tp2) +{ + struct tm tp; + + localtime_r(&now, &tp); + + /* Friday displays Monday's events */ + if (after == 0 && before == 0 && friday != -1) + after = tp.tm_wday == friday ? 3 : 1; + + time1 = now - SECSPERDAY * before; + localtime_r(&time1, tp1); + year1 = 1900 + tp1->tm_year; + time2 = now + SECSPERDAY * after; + localtime_r(&time2, tp2); + year2 = 1900 + tp2->tm_year; + + strftime(dayname, sizeof(dayname) - 1, "%A, %d %B %Y", tp1); + + setnnames(); +} + +/* convert Day[/Month][/Year] into unix time (since 1970) + * Day: two digits, Month: two digits, Year: digits + */ +time_t +Mktime(char *dp) +{ + time_t t; + int d, m, y; + struct tm tm, tp; + + (void)time(&t); + localtime_r(&t, &tp); + + tm = tm0; + tm.tm_mday = tp.tm_mday; + tm.tm_mon = tp.tm_mon; + tm.tm_year = tp.tm_year; + + switch (sscanf(dp, "%d.%d.%d", &d, &m, &y)) { + case 3: + if (y > 1900) + y -= 1900; + tm.tm_year = y; + /* FALLTHROUGH */ + case 2: + tm.tm_mon = m - 1; + /* FALLTHROUGH */ + case 1: + tm.tm_mday = d; + } + +#ifdef DEBUG + fprintf(stderr, "Mktime: %d %d %s\n", + (int)mktime(&tm), (int)t, asctime(&tm)); +#endif + return (mktime(&tm)); +} diff --git a/usr.bin/calendar/events.c b/usr.bin/calendar/events.c new file mode 100644 index 000000000000..84f8f2b41a8b --- /dev/null +++ b/usr.bin/calendar/events.c @@ -0,0 +1,229 @@ +/*- + * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * + * Copyright (c) 1992-2009 Edwin Groothuis . + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + */ + +#include +__FBSDID("$FreeBSD$"); + +#include +#include +#include +#include +#include +#ifdef WITH_ICONV +#include +#include +#include + +static iconv_t conv = (iconv_t)-1; +static char *currentEncoding = NULL; + +#endif + +#include "pathnames.h" +#include "calendar.h" + +#ifdef WITH_ICONV +void +set_new_encoding(void) +{ + const char *newenc; + + newenc = nl_langinfo(CODESET); + if (currentEncoding == NULL) { + currentEncoding = strdup(newenc); + if (currentEncoding == NULL) + errx(1, "set_new_encoding: cannot allocate memory"); + return; + } + if (strcmp(currentEncoding, newenc) == 0) + return; + free(currentEncoding); + currentEncoding = strdup(newenc); + if (currentEncoding == NULL) + errx(1, "set_new_encoding: cannot allocate memory"); + if (conv != (iconv_t) -1) { + iconv_close(conv); + conv = (iconv_t) -1; + } +} +#endif + +static char * +convert(char *input) +{ + char *output; +#ifdef WITH_ICONV + size_t inleft, outleft, converted = 0; + char *outbuf, *tmp; + char *inbuf; + size_t outlen; + + if (currentEncoding == NULL) { + output = strdup(input); + if (output == NULL) + errx(1, "convert: cannot allocate memory"); + return (output); + } + if (conv == (iconv_t)-1) { + conv = iconv_open(outputEncoding, currentEncoding); + if (conv == (iconv_t)-1) { + if (errno == EINVAL) + errx(1, "Conversion is not supported"); + else + err(1, "Initialization failure"); + } + } + + inleft = strlen(input); + inbuf = input; + + outlen = inleft; + if ((output = malloc(outlen + 1)) == NULL) + errx(1, "convert: cannot allocate memory"); + + for (;;) { + errno = 0; + outbuf = output + converted; + outleft = outlen - converted; + + converted = iconv(conv, (char **) &inbuf, &inleft, &outbuf, &outleft); + if (converted != (size_t) -1 || errno == EINVAL) { + /* finished or invalid multibyte, so truncate and ignore */ + break; + } + + if (errno != E2BIG) { + free(output); + err(1, "convert"); + } + + converted = outbuf - output; + outlen += inleft * 2; + + if ((tmp = realloc(output, outlen + 1)) == NULL) { + free(output); + errx(1, "convert: cannot allocate memory"); + } + + output = tmp; + outbuf = output + converted; + } + + /* flush the iconv conversion */ + iconv(conv, NULL, NULL, &outbuf, &outleft); + + /* null terminate the string */ + *outbuf = '\0'; +#else + output = strdup(input); + if (output == NULL) + errx(1, "convert: cannot allocate memory"); +#endif + + return (output); +} + +struct event * +event_add(int year, int month, int day, char *date, int var, char *txt, + char *extra) +{ + struct event *e; + + /* + * Creating a new event: + * - Create a new event + * - Copy the machine readable day and month + * - Copy the human readable and language specific date + * - Copy the text of the event + */ + e = (struct event *)calloc(1, sizeof(struct event)); + if (e == NULL) + errx(1, "event_add: cannot allocate memory"); + e->month = month; + e->day = day; + e->var = var; + e->date = convert(date); + if (e->date == NULL) + errx(1, "event_add: cannot allocate memory"); + e->text = convert(txt); + if (e->text == NULL) + errx(1, "event_add: cannot allocate memory"); + e->extra = NULL; + if (extra != NULL && extra[0] != '\0') + e->extra = convert(extra); + addtodate(e, year, month, day); + return (e); +} + +void +event_continue(struct event *e, char *txt) +{ + char *oldtext, *text; + + text = convert(txt); + oldtext = e->text; + if (oldtext == NULL) + errx(1, "event_continue: cannot allocate memory"); + + asprintf(&e->text, "%s\n%s", oldtext, text); + if (e->text == NULL) + errx(1, "event_continue: cannot allocate memory"); + free(oldtext); + free(text); + + return; +} + +void +event_print_all(FILE *fp) +{ + struct event *e; + + while (walkthrough_dates(&e) != 0) { +#ifdef DEBUG + fprintf(stderr, "event_print_allmonth: %d, day: %d\n", + month, day); +#endif + + /* + * Go through all events and print the text of the matching + * dates + */ + while (e != NULL) { + (void)fprintf(fp, "%s%c%s%s%s%s\n", e->date, + e->var ? '*' : ' ', e->text, + e->extra != NULL ? " (" : "", + e->extra != NULL ? e->extra : "", + e->extra != NULL ? ")" : "" + ); + + e = e->next; + } + } +} diff --git a/usr.bin/calendar/io.c b/usr.bin/calendar/io.c new file mode 100644 index 000000000000..f363289878b9 --- /dev/null +++ b/usr.bin/calendar/io.c @@ -0,0 +1,502 @@ +/*- + * SPDX-License-Identifier: BSD-3-Clause + * + * Copyright (c) 1989, 1993, 1994 + * The Regents of the University of California. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#ifndef lint +static const char copyright[] = +"@(#) Copyright (c) 1989, 1993\n\ + The Regents of the University of California. All rights reserved.\n"; +#endif + +#if 0 +#ifndef lint +static char sccsid[] = "@(#)calendar.c 8.3 (Berkeley) 3/25/94"; +#endif +#endif + +#include +__FBSDID("$FreeBSD$"); + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "pathnames.h" +#include "calendar.h" + +enum { + T_OK = 0, + T_ERR, + T_PROCESS, +}; + +const char *calendarFile = "calendar"; /* default calendar file */ +static const char *calendarHomes[] = {".calendar", _PATH_INCLUDE}; /* HOME */ +static const char *calendarNoMail = "nomail";/* don't sent mail if file exist */ + +static char path[MAXPATHLEN]; + +struct fixs neaster, npaskha, ncny, nfullmoon, nnewmoon; +struct fixs nmarequinox, nsepequinox, njunsolstice, ndecsolstice; + +static int cal_parse(FILE *in, FILE *out); + +static StringList *definitions = NULL; +static struct event *events[MAXCOUNT]; +static char *extradata[MAXCOUNT]; + +static void +trimlr(char **buf) +{ + char *walk = *buf; + char *last; + + while (isspace(*walk)) + walk++; + if (*walk != '\0') { + last = walk + strlen(walk) - 1; + while (last > walk && isspace(*last)) + last--; + *(last+1) = 0; + } + + *buf = walk; +} + +static FILE * +cal_fopen(const char *file) +{ + FILE *fp; + char *home = getenv("HOME"); + unsigned int i; + + if (home == NULL || *home == '\0') { + warnx("Cannot get home directory"); + return (NULL); + } + + if (chdir(home) != 0) { + warnx("Cannot enter home directory"); + return (NULL); + } + + for (i = 0; i < nitems(calendarHomes); i++) { + if (chdir(calendarHomes[i]) != 0) + continue; + + if ((fp = fopen(file, "r")) != NULL) + return (fp); + } + + warnx("can't open calendar file \"%s\"", file); + + return (NULL); +} + +static int +token(char *line, FILE *out, bool *skip) +{ + char *walk, c, a; + + if (strncmp(line, "endif", 5) == 0) { + *skip = false; + return (T_OK); + } + + if (*skip) + return (T_OK); + + if (strncmp(line, "include", 7) == 0) { + walk = line + 7; + + trimlr(&walk); + + if (*walk == '\0') { + warnx("Expecting arguments after #include"); + return (T_ERR); + } + + if (*walk != '<' && *walk != '\"') { + warnx("Excecting '<' or '\"' after #include"); + return (T_ERR); + } + + a = *walk; + walk++; + c = walk[strlen(walk) - 1]; + + switch(c) { + case '>': + if (a != '<') { + warnx("Unterminated include expecting '\"'"); + return (T_ERR); + } + break; + case '\"': + if (a != '\"') { + warnx("Unterminated include expecting '>'"); + return (T_ERR); + } + break; + default: + warnx("Unterminated include expecting '%c'", + a == '<' ? '>' : '\"' ); + return (T_ERR); + } + walk[strlen(walk) - 1] = '\0'; + + if (cal_parse(cal_fopen(walk), out)) + return (T_ERR); + + return (T_OK); + } + + if (strncmp(line, "define", 6) == 0) { + if (definitions == NULL) + definitions = sl_init(); + walk = line + 6; + trimlr(&walk); + + if (*walk == '\0') { + warnx("Expecting arguments after #define"); + return (T_ERR); + } + + sl_add(definitions, strdup(walk)); + return (T_OK); + } + + if (strncmp(line, "ifndef", 6) == 0) { + walk = line + 6; + trimlr(&walk); + + if (*walk == '\0') { + warnx("Expecting arguments after #ifndef"); + return (T_ERR); + } + + if (definitions != NULL && sl_find(definitions, walk) != NULL) + *skip = true; + + return (T_OK); + } + + return (T_PROCESS); + +} + +#define REPLACE(string, slen, struct_) \ + if (strncasecmp(buf, (string), (slen)) == 0 && buf[(slen)]) { \ + if (struct_.name != NULL) \ + free(struct_.name); \ + if ((struct_.name = strdup(buf + (slen))) == NULL) \ + errx(1, "cannot allocate memory"); \ + struct_.len = strlen(buf + (slen)); \ + continue; \ + } +static int +cal_parse(FILE *in, FILE *out) +{ + char *line = NULL; + char *buf; + size_t linecap = 0; + ssize_t linelen; + ssize_t l; + static int d_first = -1; + static int count = 0; + int i; + int month[MAXCOUNT]; + int day[MAXCOUNT]; + int year[MAXCOUNT]; + bool skip = false; + char dbuf[80]; + char *pp, p; + struct tm tm; + int flags; + + /* Unused */ + tm.tm_sec = 0; + tm.tm_min = 0; + tm.tm_hour = 0; + tm.tm_wday = 0; + + if (in == NULL) + return (1); + + while ((linelen = getline(&line, &linecap, in)) > 0) { + if (*line == '#') { + switch (token(line+1, out, &skip)) { + case T_ERR: + free(line); + return (1); + case T_OK: + continue; + case T_PROCESS: + break; + default: + break; + } + } + + if (skip) + continue; + + buf = line; + for (l = linelen; + l > 0 && isspace((unsigned char)buf[l - 1]); + l--) + ; + buf[l] = '\0'; + if (buf[0] == '\0') + continue; + + /* + * Setting LANG in user's calendar was an old workaround + * for 'calendar -a' being run with C locale to properly + * print user's calendars in their native languages. + * Now that 'calendar -a' does fork with setusercontext(), + * and does not run iconv(), this variable has little use. + */ + if (strncmp(buf, "LANG=", 5) == 0) { + (void)setlocale(LC_ALL, buf + 5); + d_first = (*nl_langinfo(D_MD_ORDER) == 'd'); +#ifdef WITH_ICONV + if (!doall) + set_new_encoding(); +#endif + setnnames(); + continue; + } + /* Parse special definitions: Easter, Paskha etc */ + REPLACE("Easter=", 7, neaster); + REPLACE("Paskha=", 7, npaskha); + REPLACE("ChineseNewYear=", 15, ncny); + REPLACE("NewMoon=", 8, nnewmoon); + REPLACE("FullMoon=", 9, nfullmoon); + REPLACE("MarEquinox=", 11, nmarequinox); + REPLACE("SepEquinox=", 11, nsepequinox); + REPLACE("JunSolstice=", 12, njunsolstice); + REPLACE("DecSolstice=", 12, ndecsolstice); + if (strncmp(buf, "SEQUENCE=", 9) == 0) { + setnsequences(buf + 9); + continue; + } + + /* + * If the line starts with a tab, the data has to be + * added to the previous line + */ + if (buf[0] == '\t') { + for (i = 0; i < count; i++) + event_continue(events[i], buf); + continue; + } + + /* Get rid of leading spaces (non-standard) */ + while (isspace((unsigned char)buf[0])) + memcpy(buf, buf + 1, strlen(buf)); + + /* No tab in the line, then not a valid line */ + if ((pp = strchr(buf, '\t')) == NULL) + continue; + + /* Trim spaces in front of the tab */ + while (isspace((unsigned char)pp[-1])) + pp--; + + p = *pp; + *pp = '\0'; + if ((count = parsedaymonth(buf, year, month, day, &flags, + extradata)) == 0) + continue; + *pp = p; + if (count < 0) { + /* Show error status based on return value */ + if (debug) + fprintf(stderr, "Ignored: %s\n", buf); + if (count == -1) + continue; + count = -count + 1; + } + + /* Find the last tab */ + while (pp[1] == '\t') + pp++; + + if (d_first < 0) + d_first = (*nl_langinfo(D_MD_ORDER) == 'd'); + + for (i = 0; i < count; i++) { + tm.tm_mon = month[i] - 1; + tm.tm_mday = day[i]; + tm.tm_year = year[i] - 1900; + (void)strftime(dbuf, sizeof(dbuf), + d_first ? "%e %b" : "%b %e", &tm); + if (debug) + fprintf(stderr, "got %s\n", pp); + events[i] = event_add(year[i], month[i], day[i], dbuf, + ((flags &= F_VARIABLE) != 0) ? 1 : 0, pp, + extradata[i]); + } + } + + free(line); + fclose(in); + + return (0); +} + +void +cal(void) +{ + FILE *fpin; + FILE *fpout; + int i; + + for (i = 0; i < MAXCOUNT; i++) + extradata[i] = (char *)calloc(1, 20); + + + if ((fpin = opencalin()) == NULL) + return; + + if ((fpout = opencalout()) == NULL) { + fclose(fpin); + return; + } + + if (cal_parse(fpin, fpout)) + return; + + event_print_all(fpout); + closecal(fpout); +} + +FILE * +opencalin(void) +{ + struct stat sbuf; + FILE *fpin; + + /* open up calendar file */ + if ((fpin = fopen(calendarFile, "r")) == NULL) { + if (doall) { + if (chdir(calendarHomes[0]) != 0) + return (NULL); + if (stat(calendarNoMail, &sbuf) == 0) + return (NULL); + if ((fpin = fopen(calendarFile, "r")) == NULL) + return (NULL); + } else { + fpin = cal_fopen(calendarFile); + } + } + return (fpin); +} + +FILE * +opencalout(void) +{ + int fd; + + /* not reading all calendar files, just set output to stdout */ + if (!doall) + return (stdout); + + /* set output to a temporary file, so if no output don't send mail */ + snprintf(path, sizeof(path), "%s/_calXXXXXX", _PATH_TMP); + if ((fd = mkstemp(path)) < 0) + return (NULL); + return (fdopen(fd, "w+")); +} + +void +closecal(FILE *fp) +{ + struct stat sbuf; + int nread, pdes[2], status; + char buf[1024]; + + if (!doall) + return; + + rewind(fp); + if (fstat(fileno(fp), &sbuf) || !sbuf.st_size) + goto done; + if (pipe(pdes) < 0) + goto done; + switch (fork()) { + case -1: /* error */ + (void)close(pdes[0]); + (void)close(pdes[1]); + goto done; + case 0: + /* child -- set stdin to pipe output */ + if (pdes[0] != STDIN_FILENO) { + (void)dup2(pdes[0], STDIN_FILENO); + (void)close(pdes[0]); + } + (void)close(pdes[1]); + execl(_PATH_SENDMAIL, "sendmail", "-i", "-t", "-F", + "\"Reminder Service\"", (char *)NULL); + warn(_PATH_SENDMAIL); + _exit(1); + } + /* parent -- write to pipe input */ + (void)close(pdes[0]); + + write(pdes[1], "From: \"Reminder Service\" <", 26); + write(pdes[1], pw->pw_name, strlen(pw->pw_name)); + write(pdes[1], ">\nTo: <", 7); + write(pdes[1], pw->pw_name, strlen(pw->pw_name)); + write(pdes[1], ">\nSubject: ", 11); + write(pdes[1], dayname, strlen(dayname)); + write(pdes[1], "'s Calendar\nPrecedence: bulk\n\n", 30); + + while ((nread = read(fileno(fp), buf, sizeof(buf))) > 0) + (void)write(pdes[1], buf, nread); + (void)close(pdes[1]); +done: (void)fclose(fp); + (void)unlink(path); + while (wait(&status) >= 0); +} diff --git a/usr.bin/calendar/locale.c b/usr.bin/calendar/locale.c new file mode 100644 index 000000000000..34f0f98ca87b --- /dev/null +++ b/usr.bin/calendar/locale.c @@ -0,0 +1,168 @@ +/*- + * SPDX-License-Identifier: BSD-3-Clause + * + * Copyright (c) 1989, 1993, 1994 + * The Regents of the University of California. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include +__FBSDID("$FreeBSD$"); + +#include +#include +#include +#include +#include +#include + +#include "calendar.h" + +const char *fdays[] = { + "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", + "Saturday", NULL, +}; + +const char *days[] = { + "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat", NULL, +}; + +const char *fmonths[] = { + "January", "February", "March", "April", "May", "June", "Juli", + "August", "September", "October", "November", "December", NULL, +}; + +const char *months[] = { + "Jan", "Feb", "Mar", "Apr", "May", "Jun", + "Jul", "Aug", "Sep", "Oct", "Nov", "Dec", NULL, +}; + +const char *sequences[] = { + "First", "Second", "Third", "Fourth", "Fifth", "Last" +}; + +struct fixs fndays[8]; /* full national days names */ +struct fixs ndays[8]; /* short national days names */ +struct fixs fnmonths[13]; /* full national months names */ +struct fixs nmonths[13]; /* short national month names */ +struct fixs nsequences[10]; /* national sequence names */ + + +void +setnnames(void) +{ + char buf[80]; + int i, l; + struct tm tm; + + memset(&tm, 0, sizeof(struct tm)); + for (i = 0; i < 7; i++) { + tm.tm_wday = i; + strftime(buf, sizeof(buf), "%a", &tm); + for (l = strlen(buf); + l > 0 && isspace((unsigned char)buf[l - 1]); + l--) + ; + buf[l] = '\0'; + if (ndays[i].name != NULL) + free(ndays[i].name); + if ((ndays[i].name = strdup(buf)) == NULL) + errx(1, "cannot allocate memory"); + ndays[i].len = strlen(buf); + + strftime(buf, sizeof(buf), "%A", &tm); + for (l = strlen(buf); + l > 0 && isspace((unsigned char)buf[l - 1]); + l--) + ; + buf[l] = '\0'; + if (fndays[i].name != NULL) + free(fndays[i].name); + if ((fndays[i].name = strdup(buf)) == NULL) + errx(1, "cannot allocate memory"); + fndays[i].len = strlen(buf); + } + + memset(&tm, 0, sizeof(struct tm)); + for (i = 0; i < 12; i++) { + tm.tm_mon = i; + strftime(buf, sizeof(buf), "%b", &tm); + for (l = strlen(buf); + l > 0 && isspace((unsigned char)buf[l - 1]); + l--) + ; + buf[l] = '\0'; + if (nmonths[i].name != NULL) + free(nmonths[i].name); + if ((nmonths[i].name = strdup(buf)) == NULL) + errx(1, "cannot allocate memory"); + nmonths[i].len = strlen(buf); + + strftime(buf, sizeof(buf), "%B", &tm); + for (l = strlen(buf); + l > 0 && isspace((unsigned char)buf[l - 1]); + l--) + ; + buf[l] = '\0'; + if (fnmonths[i].name != NULL) + free(fnmonths[i].name); + if ((fnmonths[i].name = strdup(buf)) == NULL) + errx(1, "cannot allocate memory"); + fnmonths[i].len = strlen(buf); + } +} + +void +setnsequences(char *seq) +{ + int i; + char *p; + + p = seq; + for (i = 0; i < 5; i++) { + nsequences[i].name = p; + if ((p = strchr(p, ' ')) == NULL) { + /* Oh oh there is something wrong. Erase! Erase! */ + for (i = 0; i < 5; i++) { + nsequences[i].name = NULL; + nsequences[i].len = 0; + } + return; + } + *p = '\0'; + p++; + } + nsequences[i].name = p; + + for (i = 0; i < 5; i++) { + nsequences[i].name = strdup(nsequences[i].name); + nsequences[i].len = nsequences[i + 1].name - nsequences[i].name; + } + nsequences[i].name = strdup(nsequences[i].name); + nsequences[i].len = strlen(nsequences[i].name); + + return; +} diff --git a/usr.bin/calendar/ostern.c b/usr.bin/calendar/ostern.c new file mode 100644 index 000000000000..53a5a894d480 --- /dev/null +++ b/usr.bin/calendar/ostern.c @@ -0,0 +1,69 @@ +/*- + * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * + * Copyright (c) 1996 Wolfram Schneider . Berlin. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include +__FBSDID("$FreeBSD$"); + +#include +#include +#include + +#include "calendar.h" + +/* return year day for Easter */ + +/* + * This code is based on the Calendar FAQ's code for how to calculate + * easter is. This is the Gregorian calendar version. They refer to + * the Algorithm of Oudin in the "Explanatory Supplement to the + * Astronomical Almanac". + */ + +int +easter(int year) /* 0 ... abcd, NOT since 1900 */ +{ + int G, /* Golden number - 1 */ + C, /* Century */ + H, /* 23 - epact % 30 */ + I, /* days from 21 March to Paschal full moon */ + J, /* weekday of full moon */ + L; /* days from 21 March to Sunday on of before full moon */ + + G = year % 19; + C = year / 100; + H = (C - C / 4 - (8 * C + 13) / 25 + 19 * G + 15) % 30; + I = H - (H / 28) * (1 - (H / 28) * (29 / (H + 1)) * ((21 - G) / 11)); + J = (year + year / 4 + I + 2 - C + C / 4) % 7; + + L = I - J; + + if (isleap(year)) + return 31 + 29 + 21 + L + 7; + else + return 31 + 28 + 21 + L + 7; +} diff --git a/usr.bin/calendar/parsedata.c b/usr.bin/calendar/parsedata.c new file mode 100644 index 000000000000..32f0cb8f6f6a --- /dev/null +++ b/usr.bin/calendar/parsedata.c @@ -0,0 +1,1118 @@ +/*- + * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * + * Copyright (c) 1992-2009 Edwin Groothuis . + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + */ + +#include +__FBSDID("$FreeBSD$"); + +#include +#include +#include +#include +#include +#include + +#include "calendar.h" + +static char *showflags(int flags); +static int isonlydigits(char *s, int nostar); +static const char *getmonthname(int i); +static int checkmonth(char *s, size_t *len, size_t *offset, const char **month); +static const char *getdayofweekname(int i); +static int checkdayofweek(char *s, size_t *len, size_t *offset, const char **dow); +static int indextooffset(char *s); +static int parseoffset(char *s); +static char *floattoday(int year, double f); +static char *floattotime(double f); +static int wdayom (int day, int offset, int month, int year); + +/* + * Expected styles: + * + * Date ::= Month . ' ' . DayOfMonth | + * Month . ' ' . DayOfWeek . ModifierIndex | + * Month . '/' . DayOfMonth | + * Month . '/' . DayOfWeek . ModifierIndex | + * DayOfMonth . ' ' . Month | + * DayOfMonth . '/' . Month | + * DayOfWeek . ModifierIndex . ' ' .Month | + * DayOfWeek . ModifierIndex . '/' .Month | + * DayOfWeek . ModifierIndex | + * SpecialDay . ModifierOffset + * + * Month ::= MonthName | MonthNumber | '*' + * MonthNumber ::= '0' ... '9' | '00' ... '09' | '10' ... '12' + * MonthName ::= MonthNameShort | MonthNameLong + * MonthNameLong ::= 'January' ... 'December' + * MonthNameShort ::= 'Jan' ... 'Dec' | 'Jan.' ... 'Dec.' + * + * DayOfWeek ::= DayOfWeekShort | DayOfWeekLong + * DayOfWeekShort ::= 'Mon' .. 'Sun' + * DayOfWeekLong ::= 'Monday' .. 'Sunday' + * DayOfMonth ::= '0' ... '9' | '00' ... '09' | '10' ... '29' | + * '30' ... '31' | '*' + * + * ModifierOffset ::= '' | '+' . ModifierNumber | '-' . ModifierNumber + * ModifierNumber ::= '0' ... '9' | '00' ... '99' | '000' ... '299' | + * '300' ... '359' | '360' ... '365' + * ModifierIndex ::= 'Second' | 'Third' | 'Fourth' | 'Fifth' | + * 'First' | 'Last' + * + * SpecialDay ::= 'Easter' | 'Paskha' | 'ChineseNewYear' + * + */ +static int +determinestyle(char *date, int *flags, + char *month, int *imonth, char *dayofmonth, int *idayofmonth, + char *dayofweek, int *idayofweek, char *modifieroffset, + char *modifierindex, char *specialday, char *year, int *iyear) +{ + char *p, *p1, *p2, *py; + const char *dow, *pmonth; + char pold; + size_t len, offset; + + *flags = F_NONE; + *month = '\0'; + *imonth = 0; + *year = '\0'; + *iyear = 0; + *dayofmonth = '\0'; + *idayofmonth = 0; + *dayofweek = '\0'; + *idayofweek = 0; + *modifieroffset = '\0'; + *modifierindex = '\0'; + *specialday = '\0'; + +#define CHECKSPECIAL(s1, s2, lens2, type) \ + if (s2 != NULL && strncmp(s1, s2, lens2) == 0) { \ + *flags |= F_SPECIALDAY; \ + *flags |= type; \ + *flags |= F_VARIABLE; \ + if (strlen(s1) == lens2) { \ + strcpy(specialday, s1); \ + return (1); \ + } \ + strncpy(specialday, s1, lens2); \ + specialday[lens2] = '\0'; \ + strcpy(modifieroffset, s1 + lens2); \ + *flags |= F_MODIFIEROFFSET; \ + return (1); \ + } + + if ((p = strchr(date, ' ')) == NULL) { + if ((p = strchr(date, '/')) == NULL) { + CHECKSPECIAL(date, STRING_CNY, strlen(STRING_CNY), + F_CNY); + CHECKSPECIAL(date, ncny.name, ncny.len, F_CNY); + CHECKSPECIAL(date, STRING_NEWMOON, + strlen(STRING_NEWMOON), F_NEWMOON); + CHECKSPECIAL(date, nnewmoon.name, nnewmoon.len, + F_NEWMOON); + CHECKSPECIAL(date, STRING_FULLMOON, + strlen(STRING_FULLMOON), F_FULLMOON); + CHECKSPECIAL(date, nfullmoon.name, nfullmoon.len, + F_FULLMOON); + CHECKSPECIAL(date, STRING_PASKHA, + strlen(STRING_PASKHA), F_PASKHA); + CHECKSPECIAL(date, npaskha.name, npaskha.len, F_PASKHA); + CHECKSPECIAL(date, STRING_EASTER, + strlen(STRING_EASTER), F_EASTER); + CHECKSPECIAL(date, neaster.name, neaster.len, F_EASTER); + CHECKSPECIAL(date, STRING_MAREQUINOX, + strlen(STRING_MAREQUINOX), F_MAREQUINOX); + CHECKSPECIAL(date, nmarequinox.name, nmarequinox.len, + F_SEPEQUINOX); + CHECKSPECIAL(date, STRING_SEPEQUINOX, + strlen(STRING_SEPEQUINOX), F_SEPEQUINOX); + CHECKSPECIAL(date, nsepequinox.name, nsepequinox.len, + F_SEPEQUINOX); + CHECKSPECIAL(date, STRING_JUNSOLSTICE, + strlen(STRING_JUNSOLSTICE), F_JUNSOLSTICE); + CHECKSPECIAL(date, njunsolstice.name, njunsolstice.len, + F_JUNSOLSTICE); + CHECKSPECIAL(date, STRING_DECSOLSTICE, + strlen(STRING_DECSOLSTICE), F_DECSOLSTICE); + CHECKSPECIAL(date, ndecsolstice.name, ndecsolstice.len, + F_DECSOLSTICE); + if (checkdayofweek(date, &len, &offset, &dow) != 0) { + *flags |= F_DAYOFWEEK; + *flags |= F_VARIABLE; + *idayofweek = offset; + if (strlen(date) == len) { + strcpy(dayofweek, date); + return (1); + } + strncpy(dayofweek, date, len); + dayofweek[len] = '\0'; + strcpy(modifierindex, date + len); + *flags |= F_MODIFIERINDEX; + return (1); + } + if (isonlydigits(date, 1)) { + /* Assume month number only */ + *flags |= F_MONTH; + *imonth = (int)strtol(date, (char **)NULL, 10); + strcpy(month, getmonthname(*imonth)); + return(1); + } + return (0); + } + } + + /* + * After this, leave by goto-ing to "allfine" or "fail" to restore the + * original data in `date'. + */ + pold = *p; + *p = 0; + p1 = date; + p2 = p + 1; + /* Now p2 points to the next field and p1 to the first field */ + + if ((py = strchr(p2, '/')) != NULL) { + /* We have a year in the string. Now this is getting tricky */ + strcpy(year, p1); + *iyear = (int)strtol(year, NULL, 10); + p1 = p2; + p2 = py + 1; + *py = 0; + *flags |= F_YEAR; + } + + /* Check if there is a month-string in the date */ + if ((checkmonth(p1, &len, &offset, &pmonth) != 0) + || (checkmonth(p2, &len, &offset, &pmonth) != 0 && (p2 = p1))) { + /* p2 is the non-month part */ + *flags |= F_MONTH; + *imonth = offset; + + strcpy(month, getmonthname(offset)); + if (isonlydigits(p2, 1)) { + strcpy(dayofmonth, p2); + *idayofmonth = (int)strtol(p2, (char **)NULL, 10); + *flags |= F_DAYOFMONTH; + goto allfine; + } + if (strcmp(p2, "*") == 0) { + *flags |= F_ALLDAY; + goto allfine; + } + + if (checkdayofweek(p2, &len, &offset, &dow) != 0) { + *flags |= F_DAYOFWEEK; + *flags |= F_VARIABLE; + *idayofweek = offset; + strcpy(dayofweek, getdayofweekname(offset)); + if (strlen(p2) == len) + goto allfine; + strcpy(modifierindex, p2 + len); + *flags |= F_MODIFIERINDEX; + goto allfine; + } + goto fail; + } + + /* Check if there is an every-day or every-month in the string */ + if ((strcmp(p1, "*") == 0 && isonlydigits(p2, 1)) + || (strcmp(p2, "*") == 0 && isonlydigits(p1, 1) && (p2 = p1))) { + int d; + + *flags |= F_ALLMONTH; + *flags |= F_DAYOFMONTH; + d = (int)strtol(p2, (char **)NULL, 10); + *idayofmonth = d; + sprintf(dayofmonth, "%d", d); + goto allfine; + } + + /* Month as a number, then a weekday */ + if (isonlydigits(p1, 1) + && checkdayofweek(p2, &len, &offset, &dow) != 0) { + int d; + + *flags |= F_MONTH; + *flags |= F_DAYOFWEEK; + *flags |= F_VARIABLE; + + *idayofweek = offset; + d = (int)strtol(p1, (char **)NULL, 10); + *imonth = d; + strcpy(month, getmonthname(d)); + + strcpy(dayofweek, getdayofweekname(offset)); + if (strlen(p2) == len) + goto allfine; + strcpy(modifierindex, p2 + len); + *flags |= F_MODIFIERINDEX; + goto allfine; + } + + /* If both the month and date are specified as numbers */ + if (isonlydigits(p1, 1) && isonlydigits(p2, 0)) { + /* Now who wants to be this ambiguous? :-( */ + int m, d; + + if (strchr(p2, '*') != NULL) + *flags |= F_VARIABLE; + + m = (int)strtol(p1, (char **)NULL, 10); + d = (int)strtol(p2, (char **)NULL, 10); + + *flags |= F_MONTH; + *flags |= F_DAYOFMONTH; + + if (m > 12) { + *imonth = d; + *idayofmonth = m; + strcpy(month, getmonthname(d)); + sprintf(dayofmonth, "%d", m); + } else { + *imonth = m; + *idayofmonth = d; + strcpy(month, getmonthname(m)); + sprintf(dayofmonth, "%d", d); + } + goto allfine; + } + + /* FALLTHROUGH */ +fail: + *p = pold; + return (0); +allfine: + *p = pold; + return (1); + +} + +void +remember(int *rememberindex, int *y, int *m, int *d, char **ed, int yy, int mm, + int dd, char *extra); +void +remember(int *rememberindex, int *y, int *m, int *d, char **ed, int yy, int mm, + int dd, char *extra) +{ + static int warned = 0; + + if (*rememberindex >= MAXCOUNT - 1) { + if (warned == 0) + warnx("Index > %d, ignored", MAXCOUNT); + warned++; + return; + } + y[*rememberindex] = yy; + m[*rememberindex] = mm; + d[*rememberindex] = dd; + if (extra != NULL) + strcpy(ed[*rememberindex], extra); + else + ed[*rememberindex][0] = '\0'; + *rememberindex += 1; +} + +static void +debug_determinestyle(int dateonly, char *date, int flags, char *month, + int imonth, char *dayofmonth, int idayofmonth, char *dayofweek, + int idayofweek, char *modifieroffset, char *modifierindex, char *specialday, + char *year, int iyear) +{ + + if (dateonly != 0) { + printf("-------\ndate: |%s|\n", date); + if (dateonly == 1) + return; + } + printf("flags: %x - %s\n", flags, showflags(flags)); + if (modifieroffset[0] != '\0') + printf("modifieroffset: |%s|\n", modifieroffset); + if (modifierindex[0] != '\0') + printf("modifierindex: |%s|\n", modifierindex); + if (year[0] != '\0') + printf("year: |%s| (%d)\n", year, iyear); + if (month[0] != '\0') + printf("month: |%s| (%d)\n", month, imonth); + if (dayofmonth[0] != '\0') + printf("dayofmonth: |%s| (%d)\n", dayofmonth, idayofmonth); + if (dayofweek[0] != '\0') + printf("dayofweek: |%s| (%d)\n", dayofweek, idayofweek); + if (specialday[0] != '\0') + printf("specialday: |%s|\n", specialday); +} + +static struct yearinfo { + int year; + int ieaster, ipaskha, firstcnyday; + double ffullmoon[MAXMOONS], fnewmoon[MAXMOONS]; + double ffullmooncny[MAXMOONS], fnewmooncny[MAXMOONS]; + int ichinesemonths[MAXMOONS]; + double equinoxdays[2], solsticedays[2]; + int *monthdays; + struct yearinfo *next; +} *years, *yearinfo; + +/* + * Calculate dates with offset from weekdays, like Thurs-3, Wed+2, etc. + * day is the day of the week, + * offset the ordinal number of the weekday in the month. + */ +static int +wdayom (int day, int offset, int month, int year) +{ +/* Weekday of first day in month */ + int wday1; /* first day of month */ +/* Weekday of last day in month */ + int wdayn; + int d; + + wday1 = first_dayofweek_of_month(year, month); + if (wday1 < 0) /* not set */ + return (wday1); + /* + * Date of zeroth or first of our weekday in month, depending on the + * relationship with the first of the month. The range is -6:6. + */ + d = (day - wday1 + 1) % 7; + /* + * Which way are we counting? Offset 0 is invalid, abs (offset) > 5 is + * meaningless, but that's OK. Offset 5 may or may not be meaningless, + * so there's no point in complaining for complaining's sake. + */ + if (offset < 0) { /* back from end of month */ + /* FIXME */ + wdayn = d; + while (wdayn <= yearinfo->monthdays[month]) + wdayn += 7; + d = offset * 7 + wdayn; + } else if (offset > 0){ + if (d > 0) + d += offset * 7 - 7; + else + d += offset * 7; + } else + warnx ("Invalid offset 0"); + return (d); +} + +/* + * Possible date formats include any combination of: + * 3-charmonth (January, Jan, Jan) + * 3-charweekday (Friday, Monday, mon.) + * numeric month or day (1, 2, 04) + * + * Any character may separate them, or they may not be separated. Any line, + * following a line that is matched, that starts with "whitespace", is shown + * along with the matched line. + */ +int +parsedaymonth(char *date, int *yearp, int *monthp, int *dayp, int *flags, + char **edp) +{ + char month[100], dayofmonth[100], dayofweek[100], modifieroffset[100]; + char syear[100]; + char modifierindex[100], specialday[100]; + int idayofweek = -1, imonth = -1, idayofmonth = -1, iyear = -1; + int year, remindex; + int d, m, dow, rm, rd, offset; + char *ed; + int retvalsign = 1; + + /* + * CONVENTION + * + * Month: 1-12 + * Monthname: Jan .. Dec + * Day: 1-31 + * Weekday: Mon .. Sun + * + */ + + *flags = 0; + + if (debug) + debug_determinestyle(1, date, *flags, month, imonth, + dayofmonth, idayofmonth, dayofweek, idayofweek, + modifieroffset, modifierindex, specialday, syear, iyear); + if (determinestyle(date, flags, month, &imonth, dayofmonth, + &idayofmonth, dayofweek, &idayofweek, modifieroffset, + modifierindex, specialday, syear, &iyear) == 0) { + if (debug) + printf("Failed!\n"); + return (0); + } + + if (debug) + debug_determinestyle(0, date, *flags, month, imonth, + dayofmonth, idayofmonth, dayofweek, idayofweek, + modifieroffset, modifierindex, specialday, syear, iyear); + + remindex = 0; + for (year = year1; year <= year2; year++) { + + int lflags = *flags; + /* If the year is specified, only do it if it is this year! */ + if ((lflags & F_YEAR) != 0) + if (iyear != year) + continue; + lflags &= ~F_YEAR; + + /* Get important dates for this year */ + yearinfo = years; + while (yearinfo != NULL) { + if (yearinfo->year == year) + break; + yearinfo = yearinfo -> next; + } + if (yearinfo == NULL) { + yearinfo = (struct yearinfo *)calloc(1, + sizeof(struct yearinfo)); + if (yearinfo == NULL) + errx(1, "Unable to allocate more years"); + yearinfo->year = year; + yearinfo->next = years; + years = yearinfo; + + yearinfo->monthdays = monthdaytab[isleap(year)]; + yearinfo->ieaster = easter(year); + yearinfo->ipaskha = paskha(year); + fpom(year, UTCOffset, yearinfo->ffullmoon, + yearinfo->fnewmoon); + fpom(year, UTCOFFSET_CNY, yearinfo->ffullmooncny, + yearinfo->fnewmooncny); + fequinoxsolstice(year, UTCOffset, + yearinfo->equinoxdays, yearinfo->solsticedays); + + /* + * CNY: Match day with sun longitude at 330` with new + * moon + */ + yearinfo->firstcnyday = calculatesunlongitude30(year, + UTCOFFSET_CNY, yearinfo->ichinesemonths); + for (m = 0; yearinfo->fnewmooncny[m] >= 0; m++) { + if (yearinfo->fnewmooncny[m] > + yearinfo->firstcnyday) { + yearinfo->firstcnyday = + floor(yearinfo->fnewmooncny[m - 1]); + break; + } + } + } + + /* Same day every year */ + if (lflags == (F_MONTH | F_DAYOFMONTH)) { + if (!remember_ymd(year, imonth, idayofmonth)) + continue; + remember(&remindex, yearp, monthp, dayp, edp, + year, imonth, idayofmonth, NULL); + continue; + } + + /* XXX Same day every year, but variable */ + if (lflags == (F_MONTH | F_DAYOFMONTH | F_VARIABLE)) { + if (!remember_ymd(year, imonth, idayofmonth)) + continue; + remember(&remindex, yearp, monthp, dayp, edp, + year, imonth, idayofmonth, NULL); + continue; + } + + /* Same day every month */ + if (lflags == (F_ALLMONTH | F_DAYOFMONTH)) { + for (m = 1; m <= 12; m++) { + if (!remember_ymd(year, m, idayofmonth)) + continue; + remember(&remindex, yearp, monthp, dayp, edp, + year, m, idayofmonth, NULL); + } + continue; + } + + /* Every day of a month */ + if (lflags == (F_ALLDAY | F_MONTH)) { + for (d = 1; d <= yearinfo->monthdays[imonth]; d++) { + if (!remember_ymd(year, imonth, d)) + continue; + remember(&remindex, yearp, monthp, dayp, edp, + year, imonth, d, NULL); + } + continue; + } + + /* One day of every month */ + if (lflags == (F_ALLMONTH | F_DAYOFWEEK)) { + for (m = 1; m <= 12; m++) { + if (!remember_ymd(year, m, idayofmonth)) + continue; + remember(&remindex, yearp, monthp, dayp, edp, + year, m, idayofmonth, NULL); + } + continue; + } + + /* Every dayofweek of the year */ + if (lflags == (F_DAYOFWEEK | F_VARIABLE)) { + dow = first_dayofweek_of_year(year); + d = (idayofweek - dow + 8) % 7; + while (d <= 366) { + if (remember_yd(year, d, &rm, &rd)) + remember(&remindex, + yearp, monthp, dayp, edp, + year, rm, rd, NULL); + d += 7; + } + continue; + } + + /* + * Every so-manied dayofweek of every month of the year: + * Thu-3 + */ + if (lflags == (F_DAYOFWEEK | F_MODIFIERINDEX | F_VARIABLE)) { + offset = indextooffset(modifierindex); + + for (m = 0; m <= 12; m++) { + d = wdayom (idayofweek, offset, m, year); + if (remember_ymd(year, m, d)) { + remember(&remindex, + yearp, monthp, dayp, edp, + year, m, d, NULL); + continue; + } + } + continue; + } + + /* + * A certain dayofweek of a month + * Jan/Thu-3 + */ + if (lflags == + (F_MONTH | F_DAYOFWEEK | F_MODIFIERINDEX | F_VARIABLE)) { + offset = indextooffset(modifierindex); + dow = first_dayofweek_of_month(year, imonth); + d = (idayofweek - dow + 8) % 7; + + if (offset > 0) { + while (d <= yearinfo->monthdays[imonth]) { + if (--offset == 0 + && remember_ymd(year, imonth, d)) { + remember(&remindex, + yearp, monthp, dayp, edp, + year, imonth, d, NULL); + continue; + } + d += 7; + } + continue; + } + if (offset < 0) { + while (d <= yearinfo->monthdays[imonth]) + d += 7; + while (offset != 0) { + offset++; + d -= 7; + } + if (remember_ymd(year, imonth, d)) + remember(&remindex, + yearp, monthp, dayp, edp, + year, imonth, d, NULL); + continue; + } + continue; + } + + /* Every dayofweek of the month */ + if (lflags == (F_DAYOFWEEK | F_MONTH | F_VARIABLE)) { + dow = first_dayofweek_of_month(year, imonth); + d = (idayofweek - dow + 8) % 7; + while (d <= yearinfo->monthdays[imonth]) { + if (remember_ymd(year, imonth, d)) + remember(&remindex, + yearp, monthp, dayp, edp, + year, imonth, d, NULL); + d += 7; + } + continue; + } + + /* Easter */ + if ((lflags & ~F_MODIFIEROFFSET) == + (F_SPECIALDAY | F_VARIABLE | F_EASTER)) { + offset = 0; + if ((lflags & F_MODIFIEROFFSET) != 0) + offset = parseoffset(modifieroffset); + if (remember_yd(year, yearinfo->ieaster + offset, + &rm, &rd)) + remember(&remindex, yearp, monthp, dayp, edp, + year, rm, rd, NULL); + continue; + } + + /* Paskha */ + if ((lflags & ~F_MODIFIEROFFSET) == + (F_SPECIALDAY | F_VARIABLE | F_PASKHA)) { + offset = 0; + if ((lflags & F_MODIFIEROFFSET) != 0) + offset = parseoffset(modifieroffset); + if (remember_yd(year, yearinfo->ipaskha + offset, + &rm, &rd)) + remember(&remindex, yearp, monthp, dayp, edp, + year, rm, rd, NULL); + continue; + } + + /* Chinese New Year */ + if ((lflags & ~F_MODIFIEROFFSET) == + (F_SPECIALDAY | F_VARIABLE | F_CNY)) { + offset = 0; + if ((lflags & F_MODIFIEROFFSET) != 0) + offset = parseoffset(modifieroffset); + if (remember_yd(year, yearinfo->firstcnyday + offset, + &rm, &rd)) + remember(&remindex, yearp, monthp, dayp, edp, + year, rm, rd, NULL); + continue; + } + + /* FullMoon */ + if ((lflags & ~F_MODIFIEROFFSET) == + (F_SPECIALDAY | F_VARIABLE | F_FULLMOON)) { + int i; + + offset = 0; + if ((lflags & F_MODIFIEROFFSET) != 0) + offset = parseoffset(modifieroffset); + for (i = 0; yearinfo->ffullmoon[i] > 0; i++) { + if (remember_yd(year, + floor(yearinfo->ffullmoon[i]) + offset, + &rm, &rd)) { + ed = floattotime( + yearinfo->ffullmoon[i]); + remember(&remindex, + yearp, monthp, dayp, edp, + year, rm, rd, ed); + } + } + continue; + } + + /* NewMoon */ + if ((lflags & ~F_MODIFIEROFFSET) == + (F_SPECIALDAY | F_VARIABLE | F_NEWMOON)) { + int i; + + offset = 0; + if ((lflags & F_MODIFIEROFFSET) != 0) + offset = parseoffset(modifieroffset); + for (i = 0; yearinfo->ffullmoon[i] > 0; i++) { + if (remember_yd(year, + floor(yearinfo->fnewmoon[i]) + offset, + &rm, &rd)) { + ed = floattotime(yearinfo->fnewmoon[i]); + remember(&remindex, + yearp, monthp, dayp, edp, + year, rm, rd, ed); + } + } + continue; + } + + /* (Mar|Sep)Equinox */ + if ((lflags & ~F_MODIFIEROFFSET) == + (F_SPECIALDAY | F_VARIABLE | F_MAREQUINOX)) { + offset = 0; + if ((lflags & F_MODIFIEROFFSET) != 0) + offset = parseoffset(modifieroffset); + if (remember_yd(year, yearinfo->equinoxdays[0] + offset, + &rm, &rd)) { + ed = floattotime(yearinfo->equinoxdays[0]); + remember(&remindex, yearp, monthp, dayp, edp, + year, rm, rd, ed); + } + continue; + } + if ((lflags & ~F_MODIFIEROFFSET) == + (F_SPECIALDAY | F_VARIABLE | F_SEPEQUINOX)) { + offset = 0; + if ((lflags & F_MODIFIEROFFSET) != 0) + offset = parseoffset(modifieroffset); + if (remember_yd(year, yearinfo->equinoxdays[1] + offset, + &rm, &rd)) { + ed = floattotime(yearinfo->equinoxdays[1]); + remember(&remindex, yearp, monthp, dayp, edp, + year, rm, rd, ed); + } + continue; + } + + /* (Jun|Dec)Solstice */ + if ((lflags & ~F_MODIFIEROFFSET) == + (F_SPECIALDAY | F_VARIABLE | F_JUNSOLSTICE)) { + offset = 0; + if ((lflags & F_MODIFIEROFFSET) != 0) + offset = parseoffset(modifieroffset); + if (remember_yd(year, + yearinfo->solsticedays[0] + offset, &rm, &rd)) { + ed = floattotime(yearinfo->solsticedays[0]); + remember(&remindex, yearp, monthp, dayp, edp, + year, rm, rd, ed); + } + continue; + } + if ((lflags & ~F_MODIFIEROFFSET) == + (F_SPECIALDAY | F_VARIABLE | F_DECSOLSTICE)) { + offset = 0; + if ((lflags & F_MODIFIEROFFSET) != 0) + offset = parseoffset(modifieroffset); + if (remember_yd(year, + yearinfo->solsticedays[1] + offset, &rm, &rd)) { + ed = floattotime(yearinfo->solsticedays[1]); + remember(&remindex, yearp, monthp, dayp, edp, + year, rm, rd, ed); + } + continue; + } + + if (debug) { + printf("Unprocessed:\n"); + debug_determinestyle(2, date, lflags, month, imonth, + dayofmonth, idayofmonth, dayofweek, idayofweek, + modifieroffset, modifierindex, specialday, syear, + iyear); + } + retvalsign = -1; + } + + if (retvalsign == -1) + return (-remindex - 1); + else + return (remindex); +} + +static char * +showflags(int flags) +{ + static char s[1000]; + s[0] = '\0'; + + if ((flags & F_YEAR) != 0) + strcat(s, "year "); + if ((flags & F_MONTH) != 0) + strcat(s, "month "); + if ((flags & F_DAYOFWEEK) != 0) + strcat(s, "dayofweek "); + if ((flags & F_DAYOFMONTH) != 0) + strcat(s, "dayofmonth "); + if ((flags & F_MODIFIERINDEX) != 0) + strcat(s, "modifierindex "); + if ((flags & F_MODIFIEROFFSET) != 0) + strcat(s, "modifieroffset "); + if ((flags & F_SPECIALDAY) != 0) + strcat(s, "specialday "); + if ((flags & F_ALLMONTH) != 0) + strcat(s, "allmonth "); + if ((flags & F_ALLDAY) != 0) + strcat(s, "allday "); + if ((flags & F_VARIABLE) != 0) + strcat(s, "variable "); + if ((flags & F_CNY) != 0) + strcat(s, "chinesenewyear "); + if ((flags & F_PASKHA) != 0) + strcat(s, "paskha "); + if ((flags & F_EASTER) != 0) + strcat(s, "easter "); + if ((flags & F_FULLMOON) != 0) + strcat(s, "fullmoon "); + if ((flags & F_NEWMOON) != 0) + strcat(s, "newmoon "); + if ((flags & F_MAREQUINOX) != 0) + strcat(s, "marequinox "); + if ((flags & F_SEPEQUINOX) != 0) + strcat(s, "sepequinox "); + if ((flags & F_JUNSOLSTICE) != 0) + strcat(s, "junsolstice "); + if ((flags & F_DECSOLSTICE) != 0) + strcat(s, "decsolstice "); + + return s; +} + +static const char * +getmonthname(int i) +{ + if (i <= 0 || i > 12) + return (""); + if (nmonths[i - 1].len != 0 && nmonths[i - 1].name != NULL) + return (nmonths[i - 1].name); + return (months[i - 1]); +} + +static int +checkmonth(char *s, size_t *len, size_t *offset, const char **month) +{ + struct fixs *n; + int i; + + for (i = 0; fnmonths[i].name != NULL; i++) { + n = fnmonths + i; + if (strncasecmp(s, n->name, n->len) == 0) { + *len = n->len; + *month = n->name; + *offset = i + 1; + return (1); + } + } + for (i = 0; nmonths[i].name != NULL; i++) { + n = nmonths + i; + if (strncasecmp(s, n->name, n->len) == 0) { + *len = n->len; + *month = n->name; + *offset = i + 1; + return (1); + } + } + for (i = 0; fmonths[i] != NULL; i++) { + *len = strlen(fmonths[i]); + if (strncasecmp(s, fmonths[i], *len) == 0) { + *month = fmonths[i]; + *offset = i + 1; + return (1); + } + } + for (i = 0; months[i] != NULL; i++) { + if (strncasecmp(s, months[i], 3) == 0) { + *len = 3; + *month = months[i]; + *offset = i + 1; + return (1); + } + } + return (0); +} + +static const char * +getdayofweekname(int i) +{ + if (ndays[i].len != 0 && ndays[i].name != NULL) + return (ndays[i].name); + return (days[i]); +} + +static int +checkdayofweek(char *s, size_t *len, size_t *offset, const char **dow) +{ + struct fixs *n; + int i; + + for (i = 0; fndays[i].name != NULL; i++) { + n = fndays + i; + if (strncasecmp(s, n->name, n->len) == 0) { + *len = n->len; + *dow = n->name; + *offset = i; + return (1); + } + } + for (i = 0; ndays[i].name != NULL; i++) { + n = ndays + i; + if (strncasecmp(s, n->name, n->len) == 0) { + *len = n->len; + *dow = n->name; + *offset = i; + return (1); + } + } + for (i = 0; fdays[i] != NULL; i++) { + *len = strlen(fdays[i]); + if (strncasecmp(s, fdays[i], *len) == 0) { + *dow = fdays[i]; + *offset = i; + return (1); + } + } + for (i = 0; days[i] != NULL; i++) { + if (strncasecmp(s, days[i], 3) == 0) { + *len = 3; + *dow = days[i]; + *offset = i; + return (1); + } + } + return (0); +} + +static int +isonlydigits(char *s, int nostar) +{ + int i; + for (i = 0; s[i] != '\0'; i++) { + if (nostar == 0 && s[i] == '*' && s[i + 1] == '\0') + return 1; + if (!isdigit((unsigned char)s[i])) + return (0); + } + return (1); +} + +static int +indextooffset(char *s) +{ + int i; + struct fixs *n; + char *es; + + if (s[0] == '+' || s[0] == '-') { + i = strtol (s, &es, 10); + if (*es != '\0') /* trailing junk */ + errx (1, "Invalid specifier format: %s\n", s); + return (i); + } + + for (i = 0; i < 6; i++) { + if (strcasecmp(s, sequences[i]) == 0) { + if (i == 5) + return (-1); + return (i + 1); + } + } + for (i = 0; i < 6; i++) { + n = nsequences + i; + if (n->len == 0) + continue; + if (strncasecmp(s, n->name, n->len) == 0) { + if (i == 5) + return (-1); + return (i + 1); + } + } + return (0); +} + +static int +parseoffset(char *s) +{ + return strtol(s, NULL, 10); +} + +static char * +floattotime(double f) +{ + static char buf[100]; + int hh, mm, ss, i; + + f -= floor(f); + i = f * SECSPERDAY; + + hh = i / SECSPERHOUR; + i %= SECSPERHOUR; + mm = i / SECSPERMINUTE; + i %= SECSPERMINUTE; + ss = i; + + sprintf(buf, "%02d:%02d:%02d", hh, mm, ss); + return (buf); +} + +static char * +floattoday(int year, double f) +{ + static char buf[100]; + int i, m, d, hh, mm, ss; + int *cumdays = cumdaytab[isleap(year)]; + + for (i = 0; 1 + cumdays[i] < f; i++) + ; + m = --i; + d = floor(f - 1 - cumdays[i]); + f -= floor(f); + i = f * SECSPERDAY; + + hh = i / SECSPERHOUR; + i %= SECSPERHOUR; + mm = i / SECSPERMINUTE; + i %= SECSPERMINUTE; + ss = i; + + sprintf(buf, "%02d-%02d %02d:%02d:%02d", m, d, hh, mm, ss); + return (buf); +} + +void +dodebug(char *what) +{ + int year; + + printf("UTCOffset: %g\n", UTCOffset); + printf("eastlongitude: %d\n", EastLongitude); + + if (strcmp(what, "moon") == 0) { + double ffullmoon[MAXMOONS], fnewmoon[MAXMOONS]; + int i; + + for (year = year1; year <= year2; year++) { + fpom(year, UTCOffset, ffullmoon, fnewmoon); + printf("Full moon %d:\t", year); + for (i = 0; ffullmoon[i] >= 0; i++) { + printf("%g (%s) ", ffullmoon[i], + floattoday(year, ffullmoon[i])); + } + printf("\nNew moon %d:\t", year); + for (i = 0; fnewmoon[i] >= 0; i++) { + printf("%g (%s) ", fnewmoon[i], + floattoday(year, fnewmoon[i])); + } + printf("\n"); + + } + + return; + } + + if (strcmp(what, "sun") == 0) { + double equinoxdays[2], solsticedays[2]; + for (year = year1; year <= year2; year++) { + printf("Sun in %d:\n", year); + fequinoxsolstice(year, UTCOffset, equinoxdays, + solsticedays); + printf("e[0] - %g (%s)\n", + equinoxdays[0], + floattoday(year, equinoxdays[0])); + printf("e[1] - %g (%s)\n", + equinoxdays[1], + floattoday(year, equinoxdays[1])); + printf("s[0] - %g (%s)\n", + solsticedays[0], + floattoday(year, solsticedays[0])); + printf("s[1] - %g (%s)\n", + solsticedays[1], + floattoday(year, solsticedays[1])); + } + return; + } +} diff --git a/usr.bin/calendar/paskha.c b/usr.bin/calendar/paskha.c new file mode 100644 index 000000000000..46936e6d45cf --- /dev/null +++ b/usr.bin/calendar/paskha.c @@ -0,0 +1,68 @@ +/*- + * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * + * Copyright (C) 1993-1996 by Andrey A. Chernov, Moscow, Russia. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include +__FBSDID("$FreeBSD$"); + +#include +#include +#include + +#include "calendar.h" + +#define PASKHA "paskha" +#define PASKHALEN (sizeof(PASKHA) - 1) + +/* return difference in days between Julian and Gregorian calendars */ +int +j2g(int year) +{ + return (year < 1500) ? + 0 : + 10 + (year/100 - 16) - ((year/100 - 16) / 4); +} + +/* return year day for Orthodox Easter using Gauss formula */ +/* (new style result) */ + +int +paskha(int R) /*year*/ +{ + int a, b, c, d, e; + static int x = 15; + static int y = 6; + int *cumday; + + a = R % 19; + b = R % 4; + c = R % 7; + d = (19 * a + x) % 30; + e = (2 * b + 4 * c + 6 * d + y) % 7; + cumday = cumdaytab[isleap(R)]; + return (((cumday[3] + 1) + 22) + (d + e) + j2g(R)); +} diff --git a/usr.bin/calendar/pathnames.h b/usr.bin/calendar/pathnames.h new file mode 100644 index 000000000000..006f5bcd5cdc --- /dev/null +++ b/usr.bin/calendar/pathnames.h @@ -0,0 +1,37 @@ +/*- + * SPDX-License-Identifier: BSD-3-Clause + * + * Copyright (c) 1989, 1993 + * The Regents of the University of California. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * @(#)pathnames.h 8.1 (Berkeley) 6/6/93 + * $FreeBSD$ + */ + +#include + +#define _PATH_INCLUDE "/usr/share/calendar" diff --git a/usr.bin/calendar/pom.c b/usr.bin/calendar/pom.c new file mode 100644 index 000000000000..79a0d1bbf9a3 --- /dev/null +++ b/usr.bin/calendar/pom.c @@ -0,0 +1,278 @@ +/*- + * SPDX-License-Identifier: BSD-3-Clause + * + * Copyright (c) 1989, 1993 + * The Regents of the University of California. All rights reserved. + * + * This code is derived from software posted to USENET. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#if 0 +#ifndef lint +static const char copyright[] = +"@(#) Copyright (c) 1989, 1993\n\ + The Regents of the University of California. All rights reserved.\n"; +#endif /* not lint */ + +#ifndef lint +static const char sccsid[] = "@(#)pom.c 8.1 (Berkeley) 5/31/93"; +#endif /* not lint */ +#endif +#include +__FBSDID("$FreeBSD$"); + +/* + * Phase of the Moon. Calculates the current phase of the moon. + * Based on routines from `Practical Astronomy with Your Calculator', + * by Duffett-Smith. Comments give the section from the book that + * particular piece of code was adapted from. + * + * -- Keith E. Brandt VIII 1984 + * + */ + +#include +#include +#include +#include +#include +#include +#include + +#include "calendar.h" + +#ifndef PI +#define PI 3.14159265358979323846 +#endif +#define EPOCH 85 +#define EPSILONg 279.611371 /* solar ecliptic long at EPOCH */ +#define RHOg 282.680403 /* solar ecliptic long of perigee at EPOCH */ +#define ECCEN 0.01671542 /* solar orbit eccentricity */ +#define lzero 18.251907 /* lunar mean long at EPOCH */ +#define Pzero 192.917585 /* lunar mean long of perigee at EPOCH */ +#define Nzero 55.204723 /* lunar mean long of node at EPOCH */ +#define isleap(y) ((((y) % 4) == 0 && ((y) % 100) != 0) || ((y) % 400) == 0) + +static void adj360(double *); +static double dtor(double); +static double potm(double onday); +static double potm_minute(double onday, int olddir); + +void +pom(int year, double utcoffset, int *fms, int *nms) +{ + double ffms[MAXMOONS]; + double fnms[MAXMOONS]; + int i, j; + + fpom(year, utcoffset, ffms, fnms); + + j = 0; + for (i = 0; ffms[i] != 0; i++) + fms[j++] = round(ffms[i]); + fms[i] = -1; + for (i = 0; fnms[i] != 0; i++) + nms[i] = round(fnms[i]); + nms[i] = -1; +} + +void +fpom(int year, double utcoffset, double *ffms, double *fnms) +{ + time_t tt; + struct tm GMT, tmd_today, tmd_tomorrow; + double days_today, days_tomorrow, today, tomorrow; + int cnt, d; + int yeardays; + int olddir, newdir; + double *pfnms, *pffms, t; + + pfnms = fnms; + pffms = ffms; + + /* + * We take the phase of the moon one second before and one second + * after midnight. + */ + memset(&tmd_today, 0, sizeof(tmd_today)); + tmd_today.tm_year = year - 1900; + tmd_today.tm_mon = 0; + tmd_today.tm_mday = -1; /* 31 December */ + tmd_today.tm_hour = 23; + tmd_today.tm_min = 59; + tmd_today.tm_sec = 59; + memset(&tmd_tomorrow, 0, sizeof(tmd_tomorrow)); + tmd_tomorrow.tm_year = year - 1900; + tmd_tomorrow.tm_mon = 0; + tmd_tomorrow.tm_mday = 0; /* 01 January */ + tmd_tomorrow.tm_hour = 0; + tmd_tomorrow.tm_min = 0; + tmd_tomorrow.tm_sec = 1; + + tt = mktime(&tmd_today); + gmtime_r(&tt, &GMT); + yeardays = 0; + for (cnt = EPOCH; cnt < GMT.tm_year; ++cnt) + yeardays += isleap(1900 + cnt) ? DAYSPERLEAPYEAR : DAYSPERYEAR; + days_today = (GMT.tm_yday + 1) + ((GMT.tm_hour + + (GMT.tm_min / FSECSPERMINUTE) + (GMT.tm_sec / FSECSPERHOUR)) / + FHOURSPERDAY); + days_today += yeardays; + + tt = mktime(&tmd_tomorrow); + gmtime_r(&tt, &GMT); + yeardays = 0; + for (cnt = EPOCH; cnt < GMT.tm_year; ++cnt) + yeardays += isleap(1900 + cnt) ? DAYSPERLEAPYEAR : DAYSPERYEAR; + days_tomorrow = (GMT.tm_yday + 1) + ((GMT.tm_hour + + (GMT.tm_min / FSECSPERMINUTE) + (GMT.tm_sec / FSECSPERHOUR)) / + FHOURSPERDAY); + days_tomorrow += yeardays; + + today = potm(days_today); /* 30 December 23:59:59 */ + tomorrow = potm(days_tomorrow); /* 31 December 00:00:01 */ + olddir = today > tomorrow ? -1 : +1; + + yeardays = 1 + (isleap(year) ? DAYSPERLEAPYEAR : DAYSPERYEAR); /* reuse */ + for (d = 0; d <= yeardays; d++) { + today = potm(days_today); + tomorrow = potm(days_tomorrow); + newdir = today > tomorrow ? -1 : +1; + if (olddir != newdir) { + t = potm_minute(days_today - 1, olddir) + + utcoffset / FHOURSPERDAY; + if (olddir == -1 && newdir == +1) { + *pfnms = d - 1 + t; + pfnms++; + } else if (olddir == +1 && newdir == -1) { + *pffms = d - 1 + t; + pffms++; + } + } + olddir = newdir; + days_today++; + days_tomorrow++; + } + *pffms = -1; + *pfnms = -1; +} + +static double +potm_minute(double onday, int olddir) { + double period = FSECSPERDAY / 2.0; + double p1, p2; + double before, after; + int newdir; + +// printf("---> days:%g olddir:%d\n", days, olddir); + + p1 = onday + (period / SECSPERDAY); + period /= 2; + + while (period > 30) { /* half a minute */ +// printf("period:%g - p1:%g - ", period, p1); + p2 = p1 + (2.0 / SECSPERDAY); + before = potm(p1); + after = potm(p2); +// printf("before:%10.10g - after:%10.10g\n", before, after); + newdir = before < after ? -1 : +1; + if (olddir != newdir) + p1 += (period / SECSPERDAY); + else + p1 -= (period / SECSPERDAY); + period /= 2; +// printf("newdir:%d - p1:%10.10f - period:%g\n", +// newdir, p1, period); + } + p1 -= floor(p1); + //exit(0); + return (p1); +} + +/* + * potm -- + * return phase of the moon, as a percentage [0 ... 100] + */ +static double +potm(double onday) +{ + double N, Msol, Ec, LambdaSol, l, Mm, Ev, Ac, A3, Mmprime; + double A4, lprime, V, ldprime, D, Nm; + + N = 360 * onday / 365.2422; /* sec 42 #3 */ + adj360(&N); + Msol = N + EPSILONg - RHOg; /* sec 42 #4 */ + adj360(&Msol); + Ec = 360 / PI * ECCEN * sin(dtor(Msol)); /* sec 42 #5 */ + LambdaSol = N + Ec + EPSILONg; /* sec 42 #6 */ + adj360(&LambdaSol); + l = 13.1763966 * onday + lzero; /* sec 61 #4 */ + adj360(&l); + Mm = l - (0.1114041 * onday) - Pzero; /* sec 61 #5 */ + adj360(&Mm); + Nm = Nzero - (0.0529539 * onday); /* sec 61 #6 */ + adj360(&Nm); + Ev = 1.2739 * sin(dtor(2*(l - LambdaSol) - Mm)); /* sec 61 #7 */ + Ac = 0.1858 * sin(dtor(Msol)); /* sec 61 #8 */ + A3 = 0.37 * sin(dtor(Msol)); + Mmprime = Mm + Ev - Ac - A3; /* sec 61 #9 */ + Ec = 6.2886 * sin(dtor(Mmprime)); /* sec 61 #10 */ + A4 = 0.214 * sin(dtor(2 * Mmprime)); /* sec 61 #11 */ + lprime = l + Ev + Ec - Ac + A4; /* sec 61 #12 */ + V = 0.6583 * sin(dtor(2 * (lprime - LambdaSol))); /* sec 61 #13 */ + ldprime = lprime + V; /* sec 61 #14 */ + D = ldprime - LambdaSol; /* sec 63 #2 */ + return(50 * (1 - cos(dtor(D)))); /* sec 63 #3 */ +} + +/* + * dtor -- + * convert degrees to radians + */ +static double +dtor(double deg) +{ + + return(deg * PI / 180); +} + +/* + * adj360 -- + * adjust value so 0 <= deg <= 360 + */ +static void +adj360(double *deg) +{ + + for (;;) + if (*deg < 0) + *deg += 360; + else if (*deg > 360) + *deg -= 360; + else + break; +} diff --git a/usr.bin/calendar/sunpos.c b/usr.bin/calendar/sunpos.c new file mode 100644 index 000000000000..48dd89391229 --- /dev/null +++ b/usr.bin/calendar/sunpos.c @@ -0,0 +1,450 @@ +/*- + * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * + * Copyright (c) 2009-2010 Edwin Groothuis . + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + */ + +#include +__FBSDID("$FreeBSD$"); + +/* + * This code is created to match the formulas available at: + * Formula and examples obtained from "How to Calculate alt/az: SAAO" at + * http://old.saao.ac.za/public-info/sun-moon-stars/sun-index/how-to-calculate-altaz/ + */ + +#include +#include +#include +#include +#include +#include +#include "calendar.h" + +#define D2R(m) ((m) / 180 * M_PI) +#define R2D(m) ((m) * 180 / M_PI) + +#define SIN(x) (sin(D2R(x))) +#define COS(x) (cos(D2R(x))) +#define TAN(x) (tan(D2R(x))) +#define ASIN(x) (R2D(asin(x))) +#define ATAN(x) (R2D(atan(x))) + +#ifdef NOTDEF +static void +comp(char *s, double v, double c) +{ + + printf("%-*s %*g %*g %*g\n", 15, s, 15, v, 15, c, 15, v - c); +} + +int expY; +double expZJ = 30.5; +double expUTHM = 8.5; +double expD = 34743.854; +double expT = 0.9512349; +double expL = 324.885; +double expM = 42.029; +double expepsilon = 23.4396; +double explambda = 326.186; +double expalpha = 328.428; +double expDEC = -12.789; +double expeastlongitude = 17.10; +double explatitude = -22.57; +double expHA = -37.673; +double expALT = 49.822; +double expAZ = 67.49; +#endif + +static double +fixup(double *d) +{ + + if (*d < 0) { + while (*d < 0) + *d += 360; + } else { + while (*d > 360) + *d -= 360; + } + + return (*d); +} + +static double ZJtable[] = { + 0, -0.5, 30.5, 58.5, 89.5, 119.5, 150.5, 180.5, 211.5, 242.5, 272.5, 303.5, 333.5 }; + +static void +sunpos(int inYY, int inMM, int inDD, double UTCOFFSET, int inHOUR, int inMIN, + int inSEC, double eastlongitude, double latitude, double *L, double *DEC) +{ + int Y; + double ZJ, D, T, M, epsilon, lambda, alpha, HA, UTHM; + + ZJ = ZJtable[inMM]; + if (inMM <= 2 && isleap(inYY)) + ZJ -= 1.0; + + UTHM = inHOUR + inMIN / FMINSPERHOUR + inSEC / FSECSPERHOUR - UTCOFFSET; + Y = inYY - 1900; /* 1 */ + D = floor(365.25 * Y) + ZJ + inDD + UTHM / FHOURSPERDAY; /* 3 */ + T = D / 36525.0; /* 4 */ + *L = 279.697 + 36000.769 * T; /* 5 */ + fixup(L); + M = 358.476 + 35999.050 * T; /* 6 */ + fixup(&M); + epsilon = 23.452 - 0.013 * T; /* 7 */ + fixup(&epsilon); + + lambda = *L + (1.919 - 0.005 * T) * SIN(M) + 0.020 * SIN(2 * M);/* 8 */ + fixup(&lambda); + alpha = ATAN(TAN(lambda) * COS(epsilon)); /* 9 */ + + /* Alpha should be in the same quadrant as lamba */ + { + int lssign = sin(D2R(lambda)) < 0 ? -1 : 1; + int lcsign = cos(D2R(lambda)) < 0 ? -1 : 1; + while (((sin(D2R(alpha)) < 0) ? -1 : 1) != lssign + || ((cos(D2R(alpha)) < 0) ? -1 : 1) != lcsign) + alpha += 90.0; + } + fixup(&alpha); + + *DEC = ASIN(SIN(lambda) * SIN(epsilon)); /* 10 */ + fixup(DEC); + fixup(&eastlongitude); + HA = *L - alpha + 180 + 15 * UTHM + eastlongitude; /* 12 */ + fixup(&HA); + fixup(&latitude); +#ifdef NOTDEF + printf("%02d/%02d %02d:%02d:%02d l:%g d:%g h:%g\n", + inMM, inDD, inHOUR, inMIN, inSEC, latitude, *DEC, HA); +#endif + return; + + /* + * The following calculations are not used, so to save time + * they are not calculated. + */ +#ifdef NOTDEF + *ALT = ASIN(SIN(latitude) * SIN(*DEC) + + COS(latitude) * COS(*DEC) * COS(HA)); /* 13 */ + fixup(ALT); + *AZ = ATAN(SIN(HA) / + (COS(HA) * SIN(latitude) - TAN(*DEC) * COS(latitude))); /* 14 */ + + if (*ALT > 180) + *ALT -= 360; + if (*ALT < -180) + *ALT += 360; + printf("a:%g a:%g\n", *ALT, *AZ); +#endif + +#ifdef NOTDEF + printf("Y:\t\t\t %d\t\t %d\t\t %d\n", Y, expY, Y - expY); + comp("ZJ", ZJ, expZJ); + comp("UTHM", UTHM, expUTHM); + comp("D", D, expD); + comp("T", T, expT); + comp("L", L, fixup(&expL)); + comp("M", M, fixup(&expM)); + comp("epsilon", epsilon, fixup(&expepsilon)); + comp("lambda", lambda, fixup(&explambda)); + comp("alpha", alpha, fixup(&expalpha)); + comp("DEC", DEC, fixup(&expDEC)); + comp("eastlongitude", eastlongitude, fixup(&expeastlongitude)); + comp("latitude", latitude, fixup(&explatitude)); + comp("HA", HA, fixup(&expHA)); + comp("ALT", ALT, fixup(&expALT)); + comp("AZ", AZ, fixup(&expAZ)); +#endif +} + + +#define SIGN(a) (((a) > 180) ? -1 : 1) +#define ANGLE(a, b) (((a) < (b)) ? 1 : -1) +#define SHOUR(s) ((s) / 3600) +#define SMIN(s) (((s) % 3600) / 60) +#define SSEC(s) ((s) % 60) +#define HOUR(h) ((h) / 4) +#define MIN(h) (15 * ((h) % 4)) +#define SEC(h) 0 +#define DEBUG1(y, m, d, hh, mm, pdec, dec) \ + printf("%4d-%02d-%02d %02d:%02d:00 - %7.7g -> %7.7g\n", \ + y, m, d, hh, mm, pdec, dec) +#define DEBUG2(y, m, d, hh, mm, pdec, dec, pang, ang) \ + printf("%4d-%02d-%02d %02d:%02d:00 - %7.7g -> %7.7g - %d -> %d\n", \ + y, m, d, hh, mm, pdec, dec, pang, ang) +void +equinoxsolstice(int year, double UTCoffset, int *equinoxdays, int *solsticedays) +{ + double fe[2], fs[2]; + + fequinoxsolstice(year, UTCoffset, fe, fs); + equinoxdays[0] = round(fe[0]); + equinoxdays[1] = round(fe[1]); + solsticedays[0] = round(fs[0]); + solsticedays[1] = round(fs[1]); +} + +void +fequinoxsolstice(int year, double UTCoffset, double *equinoxdays, double *solsticedays) +{ + double dec, prevdec, L; + int h, d, prevangle, angle; + int found = 0; + + double decleft, decright, decmiddle; + int dial, s; + + int *cumdays; + cumdays = cumdaytab[isleap(year)]; + + /* + * Find the first equinox, somewhere in March: + * It happens when the returned value "dec" goes from + * [350 ... 360> -> [0 ... 10] + */ + for (d = 18; d < 31; d++) { + /* printf("Comparing day %d to %d.\n", d, d+1); */ + sunpos(year, 3, d, UTCoffset, 0, 0, 0, 0.0, 0.0, &L, &decleft); + sunpos(year, 3, d + 1, UTCoffset, 0, 0, 0, 0.0, 0.0, + &L, &decright); + /* printf("Found %g and %g.\n", decleft, decright); */ + if (SIGN(decleft) == SIGN(decright)) + continue; + + dial = SECSPERDAY; + s = SECSPERDAY / 2; + while (s > 0) { + /* printf("Obtaining %d (%02d:%02d)\n", + dial, SHOUR(dial), SMIN(dial)); */ + sunpos(year, 3, d, UTCoffset, + SHOUR(dial), SMIN(dial), SSEC(dial), + 0.0, 0.0, &L, &decmiddle); + /* printf("Found %g\n", decmiddle); */ + if (SIGN(decleft) == SIGN(decmiddle)) { + decleft = decmiddle; + dial += s; + } else { + decright = decmiddle; + dial -= s; + } + /* + printf("New boundaries: %g - %g\n", decleft, decright); + */ + + s /= 2; + } + equinoxdays[0] = 1 + cumdays[3] + d + (dial / FSECSPERDAY); + break; + } + + /* Find the second equinox, somewhere in September: + * It happens when the returned value "dec" goes from + * [10 ... 0] -> <360 ... 350] + */ + for (d = 18; d < 31; d++) { + /* printf("Comparing day %d to %d.\n", d, d+1); */ + sunpos(year, 9, d, UTCoffset, 0, 0, 0, 0.0, 0.0, &L, &decleft); + sunpos(year, 9, d + 1, UTCoffset, 0, 0, 0, 0.0, 0.0, + &L, &decright); + /* printf("Found %g and %g.\n", decleft, decright); */ + if (SIGN(decleft) == SIGN(decright)) + continue; + + dial = SECSPERDAY; + s = SECSPERDAY / 2; + while (s > 0) { + /* printf("Obtaining %d (%02d:%02d)\n", + dial, SHOUR(dial), SMIN(dial)); */ + sunpos(year, 9, d, UTCoffset, + SHOUR(dial), SMIN(dial), SSEC(dial), + 0.0, 0.0, &L, &decmiddle); + /* printf("Found %g\n", decmiddle); */ + if (SIGN(decleft) == SIGN(decmiddle)) { + decleft = decmiddle; + dial += s; + } else { + decright = decmiddle; + dial -= s; + } + /* + printf("New boundaries: %g - %g\n", decleft, decright); + */ + + s /= 2; + } + equinoxdays[1] = 1 + cumdays[9] + d + (dial / FSECSPERDAY); + break; + } + + /* + * Find the first solstice, somewhere in June: + * It happens when the returned value "dec" peaks + * [40 ... 45] -> [45 ... 40] + */ + found = 0; + prevdec = 0; + prevangle = 1; + for (d = 18; d < 31; d++) { + for (h = 0; h < 4 * HOURSPERDAY; h++) { + sunpos(year, 6, d, UTCoffset, HOUR(h), MIN(h), SEC(h), + 0.0, 0.0, &L, &dec); + angle = ANGLE(prevdec, dec); + if (prevangle != angle) { +#ifdef NOTDEF + DEBUG2(year, 6, d, HOUR(h), MIN(h), + prevdec, dec, prevangle, angle); +#endif + solsticedays[0] = 1 + cumdays[6] + d + + ((h / 4.0) / 24.0); + found = 1; + break; + } + prevdec = dec; + prevangle = angle; + } + if (found) + break; + } + + /* + * Find the second solstice, somewhere in December: + * It happens when the returned value "dec" peaks + * [315 ... 310] -> [310 ... 315] + */ + found = 0; + prevdec = 360; + prevangle = -1; + for (d = 18; d < 31; d++) { + for (h = 0; h < 4 * HOURSPERDAY; h++) { + sunpos(year, 12, d, UTCoffset, HOUR(h), MIN(h), SEC(h), + 0.0, 0.0, &L, &dec); + angle = ANGLE(prevdec, dec); + if (prevangle != angle) { +#ifdef NOTDEF + DEBUG2(year, 12, d, HOUR(h), MIN(h), + prevdec, dec, prevangle, angle); +#endif + solsticedays[1] = 1 + cumdays[12] + d + + ((h / 4.0) / 24.0); + found = 1; + break; + } + prevdec = dec; + prevangle = angle; + } + if (found) + break; + } + + return; +} + +int +calculatesunlongitude30(int year, int degreeGMToffset, int *ichinesemonths) +{ + int m, d, h; + double dec; + double curL, prevL; + int *pichinesemonths, *monthdays, *cumdays, i; + int firstmonth330 = -1; + + cumdays = cumdaytab[isleap(year)]; + monthdays = monthdaytab[isleap(year)]; + pichinesemonths = ichinesemonths; + + h = 0; + sunpos(year - 1, 12, 31, + -24 * (degreeGMToffset / 360.0), + HOUR(h), MIN(h), SEC(h), 0.0, 0.0, &prevL, &dec); + + for (m = 1; m <= 12; m++) { + for (d = 1; d <= monthdays[m]; d++) { + for (h = 0; h < 4 * HOURSPERDAY; h++) { + sunpos(year, m, d, + -24 * (degreeGMToffset / 360.0), + HOUR(h), MIN(h), SEC(h), + 0.0, 0.0, &curL, &dec); + if (curL < 180 && prevL > 180) { + *pichinesemonths = cumdays[m] + d; +#ifdef DEBUG +printf("%04d-%02d-%02d %02d:%02d - %d %g\n", + year, m, d, HOUR(h), MIN(h), *pichinesemonths, curL); +#endif + pichinesemonths++; + } else { + for (i = 0; i <= 360; i += 30) + if (curL > i && prevL < i) { + *pichinesemonths = + cumdays[m] + d; +#ifdef DEBUG +printf("%04d-%02d-%02d %02d:%02d - %d %g\n", + year, m, d, HOUR(h), MIN(h), *pichinesemonths, curL); +#endif + if (i == 330) + firstmonth330 = *pichinesemonths; + pichinesemonths++; + } + } + prevL = curL; + } + } + } + *pichinesemonths = -1; + return (firstmonth330); +} + +#ifdef NOTDEF +int +main(int argc, char **argv) +{ +/* + year Mar June Sept Dec + day time day time day time day time + 2004 20 06:49 21 00:57 22 16:30 21 12:42 + 2005 20 12:33 21 06:46 22 22:23 21 18:35 + 2006 20 18:26 21 12:26 23 04:03 22 00:22 + 2007 21 00:07 21 18:06 23 09:51 22 06:08 + 2008 20 05:48 20 23:59 22 15:44 21 12:04 + 2009 20 11:44 21 05:45 22 21:18 21 17:47 + 2010 20 17:32 21 11:28 23 03:09 21 23:38 + 2011 20 23:21 21 17:16 23 09:04 22 05:30 + 2012 20 05:14 20 23:09 22 14:49 21 11:11 + 2013 20 11:02 21 05:04 22 20:44 21 17:11 + 2014 20 16:57 21 10:51 23 02:29 21 23:03 + 2015 20 22:45 21 16:38 23 08:20 22 04:48 + 2016 20 04:30 20 22:34 22 14:21 21 10:44 + 2017 20 10:28 21 04:24 22 20:02 21 16:28 +*/ + + int eq[2], sol[2]; + equinoxsolstice(strtol(argv[1], NULL, 10), 0.0, eq, sol); + printf("%d - %d - %d - %d\n", eq[0], sol[0], eq[1], sol[1]); + return(0); +} +#endif diff --git a/usr.bin/calendar/tests/Makefile b/usr.bin/calendar/tests/Makefile new file mode 100644 index 000000000000..c92b0e692746 --- /dev/null +++ b/usr.bin/calendar/tests/Makefile @@ -0,0 +1,40 @@ +# $FreeBSD$ + +PACKAGE= tests + +TAP_TESTS_SH= legacy_test + +TEST_METADATA.legacy_test+= timeout="600" + +${PACKAGE}FILES+= calendar.calibrate +${PACKAGE}FILES+= regress.a1.out +${PACKAGE}FILES+= regress.a2.out +${PACKAGE}FILES+= regress.a3.out +${PACKAGE}FILES+= regress.a4.out +${PACKAGE}FILES+= regress.a5.out +${PACKAGE}FILES+= regress.b1.out +${PACKAGE}FILES+= regress.b2.out +${PACKAGE}FILES+= regress.b3.out +${PACKAGE}FILES+= regress.b4.out +${PACKAGE}FILES+= regress.b5.out +${PACKAGE}FILES+= regress.s1.out +${PACKAGE}FILES+= regress.s2.out +${PACKAGE}FILES+= regress.s3.out +${PACKAGE}FILES+= regress.s4.out +${PACKAGE}FILES+= regress.sh +${PACKAGE}FILES+= regress.w0-1.out +${PACKAGE}FILES+= regress.w0-2.out +${PACKAGE}FILES+= regress.w0-3.out +${PACKAGE}FILES+= regress.w0-4.out +${PACKAGE}FILES+= regress.w0-5.out +${PACKAGE}FILES+= regress.w0-6.out +${PACKAGE}FILES+= regress.w0-7.out +${PACKAGE}FILES+= regress.wn-1.out +${PACKAGE}FILES+= regress.wn-2.out +${PACKAGE}FILES+= regress.wn-3.out +${PACKAGE}FILES+= regress.wn-4.out +${PACKAGE}FILES+= regress.wn-5.out +${PACKAGE}FILES+= regress.wn-6.out +${PACKAGE}FILES+= regress.wn-7.out + +.include diff --git a/usr.bin/calendar/tests/Makefile.depend b/usr.bin/calendar/tests/Makefile.depend new file mode 100644 index 000000000000..f80275d86ab1 --- /dev/null +++ b/usr.bin/calendar/tests/Makefile.depend @@ -0,0 +1,11 @@ +# $FreeBSD$ +# Autogenerated - do NOT edit! + +DIRDEPS = \ + + +.include + +.if ${DEP_RELDIR} == ${_DEP_RELDIR} +# local dependencies - needed for -jN in clean tree +.endif diff --git a/usr.bin/calendar/tests/calendar.calibrate b/usr.bin/calendar/tests/calendar.calibrate new file mode 100644 index 000000000000..28e7e4a42268 --- /dev/null +++ b/usr.bin/calendar/tests/calendar.calibrate @@ -0,0 +1,374 @@ +/* + * Calibration calendar for calendar(1) + * + * $FreeBSD$ + */ + +LANG=C + +01/01 jan 1 +01/02 jan 2 +01/03 jan 3 +01/04 jan 4 +01/05 jan 5 +01/06 jan 6 +01/07 jan 7 +01/08 jan 8 +01/09 jan 9 +01/10 jan 10 +01/11 jan 11 +01/12 jan 12 +01/13 jan 13 +01/14 jan 14 +01/15 jan 15 +01/16 jan 16 +01/17 jan 17 +01/18 jan 18 +01/19 jan 19 +01/20 jan 20 +01/21 jan 21 +01/22 jan 22 +01/23 jan 23 +01/24 jan 24 +01/25 jan 25 +01/26 jan 26 +01/27 jan 27 +01/28 jan 28 +01/29 jan 29 +01/30 jan 30 +01/31 jan 31 +02/01 feb 1 +02/02 feb 2 +02/03 feb 3 +02/04 feb 4 +02/05 feb 5 +02/06 feb 6 +02/07 feb 7 +02/08 feb 8 +02/09 feb 9 +02/10 feb 10 +02/11 feb 11 +02/12 feb 12 +02/13 feb 13 +02/14 feb 14 +02/15 feb 15 +02/16 feb 16 +02/17 feb 17 +02/18 feb 18 +02/19 feb 19 +02/20 feb 20 +02/21 feb 21 +02/22 feb 22 +02/23 feb 23 +02/24 feb 24 +02/25 feb 25 +02/26 feb 26 +02/27 feb 27 +02/28 feb 28 +02/29 feb 29 +03/01 mar 1 +03/02 mar 2 +03/03 mar 3 +03/04 mar 4 +03/05 mar 5 +03/06 mar 6 +03/07 mar 7 +03/08 mar 8 +03/09 mar 9 +03/10 mar 10 +03/11 mar 11 +03/12 mar 12 +03/13 mar 13 +03/14 mar 14 +03/15 mar 15 +03/16 mar 16 +03/17 mar 17 +03/18 mar 18 +03/19 mar 19 +03/20 mar 20 +03/21 mar 21 +03/22 mar 22 +03/23 mar 23 +03/24 mar 24 +03/25 mar 25 +03/26 mar 26 +03/27 mar 27 +03/28 mar 28 +03/29 mar 29 +03/30 mar 30 +03/31 mar 31 +04/01 apr 1 +04/02 apr 2 +04/03 apr 3 +04/04 apr 4 +04/05 apr 5 +04/06 apr 6 +04/07 apr 7 +04/08 apr 8 +04/09 apr 9 +04/10 apr 10 +04/11 apr 11 +04/12 apr 12 +04/13 apr 13 +04/14 apr 14 +04/15 apr 15 +04/16 apr 16 +04/17 apr 17 +04/18 apr 18 +04/19 apr 19 +04/20 apr 20 +04/21 apr 21 +04/22 apr 22 +04/23 apr 23 +04/24 apr 24 +04/25 apr 25 +04/26 apr 26 +04/27 apr 27 +04/28 apr 28 +04/29 apr 29 +04/30 apr 30 +05/01 may 1 +05/02 may 2 +05/03 may 3 +05/04 may 4 +05/05 may 5 +05/06 may 6 +05/07 may 7 +05/08 may 8 +05/09 may 9 +05/10 may 10 +05/11 may 11 +05/12 may 12 +05/13 may 13 +05/14 may 14 +05/15 may 15 +05/16 may 16 +05/17 may 17 +05/18 may 18 +05/19 may 19 +05/20 may 20 +05/21 may 21 +05/22 may 22 +05/23 may 23 +05/24 may 24 +05/25 may 25 +05/26 may 26 +05/27 may 27 +05/28 may 28 +05/29 may 29 +05/30 may 30 +05/31 may 31 +06/01 jun 1 +06/02 jun 2 +06/03 jun 3 +06/04 jun 4 +06/05 jun 5 +06/06 jun 6 +06/07 jun 7 +06/08 jun 8 +06/09 jun 9 +06/10 jun 10 +06/11 jun 11 +06/12 jun 12 +06/13 jun 13 +06/14 jun 14 +06/15 jun 15 +06/16 jun 16 +06/17 jun 17 +06/18 jun 18 +06/19 jun 19 +06/20 jun 20 +06/21 jun 21 +06/22 jun 22 +06/23 jun 23 +06/24 jun 24 +06/25 jun 25 +06/26 jun 26 +06/27 jun 27 +06/28 jun 28 +06/29 jun 29 +06/30 jun 30 +07/01 jul 1 +07/02 jul 2 +07/03 jul 3 +07/04 jul 4 +07/05 jul 5 +07/06 jul 6 +07/07 jul 7 +07/08 jul 8 +07/09 jul 9 +07/10 jul 10 +07/11 jul 11 +07/12 jul 12 +07/13 jul 13 +07/14 jul 14 +07/15 jul 15 +07/16 jul 16 +07/17 jul 17 +07/18 jul 18 +07/19 jul 19 +07/20 jul 20 +07/21 jul 21 +07/22 jul 22 +07/23 jul 23 +07/24 jul 24 +07/25 jul 25 +07/26 jul 26 +07/27 jul 27 +07/28 jul 28 +07/29 jul 29 +07/30 jul 30 +07/31 jul 31 +08/01 aug 1 +08/02 aug 2 +08/03 aug 3 +08/04 aug 4 +08/05 aug 5 +08/06 aug 6 +08/07 aug 7 +08/08 aug 8 +08/09 aug 9 +08/10 aug 10 +08/11 aug 11 +08/12 aug 12 +08/13 aug 13 +08/14 aug 14 +08/15 aug 15 +08/16 aug 16 +08/17 aug 17 +08/18 aug 18 +08/19 aug 19 +08/20 aug 20 +08/21 aug 21 +08/22 aug 22 +08/23 aug 23 +08/24 aug 24 +08/25 aug 25 +08/26 aug 26 +08/27 aug 27 +08/28 aug 28 +08/29 aug 29 +08/30 aug 30 +08/31 aug 31 +09/01 sep 1 +09/02 sep 2 +09/03 sep 3 +09/04 sep 4 +09/05 sep 5 +09/06 sep 6 +09/07 sep 7 +09/08 sep 8 +09/09 sep 9 +09/10 sep 10 +09/11 sep 11 +09/12 sep 12 +09/13 sep 13 +09/14 sep 14 +09/15 sep 15 +09/16 sep 16 +09/17 sep 17 +09/18 sep 18 +09/19 sep 19 +09/20 sep 20 +09/21 sep 21 +09/22 sep 22 +09/23 sep 23 +09/24 sep 24 +09/25 sep 25 +09/26 sep 26 +09/27 sep 27 +09/28 sep 28 +09/29 sep 29 +09/30 sep 30 +10/01 oct 1 +10/02 oct 2 +10/03 oct 3 +10/04 oct 4 +10/05 oct 5 +10/06 oct 6 +10/07 oct 7 +10/08 oct 8 +10/09 oct 9 +10/10 oct 10 +10/11 oct 11 +10/12 oct 12 +10/13 oct 13 +10/14 oct 14 +10/15 oct 15 +10/16 oct 16 +10/17 oct 17 +10/18 oct 18 +10/19 oct 19 +10/20 oct 20 +10/21 oct 21 +10/22 oct 22 +10/23 oct 23 +10/24 oct 24 +10/25 oct 25 +10/26 oct 26 +10/27 oct 27 +10/28 oct 28 +10/29 oct 29 +10/30 oct 30 +10/31 oct 31 +11/01 nov 1 +11/02 nov 2 +11/03 nov 3 +11/04 nov 4 +11/05 nov 5 +11/06 nov 6 +11/07 nov 7 +11/08 nov 8 +11/09 nov 9 +11/10 nov 10 +11/11 nov 11 +11/12 nov 12 +11/13 nov 13 +11/14 nov 14 +11/15 nov 15 +11/16 nov 16 +11/17 nov 17 +11/18 nov 18 +11/19 nov 19 +11/20 nov 20 +11/21 nov 21 +11/22 nov 22 +11/23 nov 23 +11/24 nov 24 +11/25 nov 25 +11/26 nov 26 +11/27 nov 27 +11/28 nov 28 +11/29 nov 29 +11/30 nov 30 +12/01 dec 1 +12/02 dec 2 +12/03 dec 3 +12/04 dec 4 +12/05 dec 5 +12/06 dec 6 +12/07 dec 7 +12/08 dec 8 +12/09 dec 9 +12/10 dec 10 +12/11 dec 11 +12/12 dec 12 +12/13 dec 13 +12/14 dec 14 +12/15 dec 15 +12/16 dec 16 +12/17 dec 17 +12/18 dec 18 +12/19 dec 19 +12/20 dec 20 +12/21 dec 21 +12/22 dec 22 +12/23 dec 23 +12/24 dec 24 +12/25 dec 25 +12/26 dec 26 +12/27 dec 27 +12/28 dec 28 +12/29 dec 29 +12/30 dec 30 +12/31 dec 31 diff --git a/usr.bin/calendar/tests/legacy_test.sh b/usr.bin/calendar/tests/legacy_test.sh new file mode 100644 index 000000000000..1b6b806c5980 --- /dev/null +++ b/usr.bin/calendar/tests/legacy_test.sh @@ -0,0 +1,6 @@ +#!/bin/sh +# $FreeBSD$ + +SRCDIR="$(dirname "${0}")"; export SRCDIR + +m4 "${SRCDIR}/../regress.m4" "${SRCDIR}/regress.sh" | sh diff --git a/usr.bin/calendar/tests/regress.a1.out b/usr.bin/calendar/tests/regress.a1.out new file mode 100644 index 000000000000..ef3d71db5e57 --- /dev/null +++ b/usr.bin/calendar/tests/regress.a1.out @@ -0,0 +1,4 @@ +Dec 28 dec 28 +Dec 29 dec 29 +Dec 30 dec 30 +Dec 31 dec 31 diff --git a/usr.bin/calendar/tests/regress.a2.out b/usr.bin/calendar/tests/regress.a2.out new file mode 100644 index 000000000000..0fed38ba2486 --- /dev/null +++ b/usr.bin/calendar/tests/regress.a2.out @@ -0,0 +1,4 @@ +Dec 29 dec 29 +Dec 30 dec 30 +Dec 31 dec 31 +Jan 1 jan 1 diff --git a/usr.bin/calendar/tests/regress.a3.out b/usr.bin/calendar/tests/regress.a3.out new file mode 100644 index 000000000000..9dabd3393352 --- /dev/null +++ b/usr.bin/calendar/tests/regress.a3.out @@ -0,0 +1,4 @@ +Dec 30 dec 30 +Dec 31 dec 31 +Jan 1 jan 1 +Jan 2 jan 2 diff --git a/usr.bin/calendar/tests/regress.a4.out b/usr.bin/calendar/tests/regress.a4.out new file mode 100644 index 000000000000..e3756b11f2b4 --- /dev/null +++ b/usr.bin/calendar/tests/regress.a4.out @@ -0,0 +1,4 @@ +Dec 31 dec 31 +Jan 1 jan 1 +Jan 2 jan 2 +Jan 3 jan 3 diff --git a/usr.bin/calendar/tests/regress.a5.out b/usr.bin/calendar/tests/regress.a5.out new file mode 100644 index 000000000000..4f61d48b291b --- /dev/null +++ b/usr.bin/calendar/tests/regress.a5.out @@ -0,0 +1,4 @@ +Jan 1 jan 1 +Jan 2 jan 2 +Jan 3 jan 3 +Jan 4 jan 4 diff --git a/usr.bin/calendar/tests/regress.b1.out b/usr.bin/calendar/tests/regress.b1.out new file mode 100644 index 000000000000..ef3d71db5e57 --- /dev/null +++ b/usr.bin/calendar/tests/regress.b1.out @@ -0,0 +1,4 @@ +Dec 28 dec 28 +Dec 29 dec 29 +Dec 30 dec 30 +Dec 31 dec 31 diff --git a/usr.bin/calendar/tests/regress.b2.out b/usr.bin/calendar/tests/regress.b2.out new file mode 100644 index 000000000000..0fed38ba2486 --- /dev/null +++ b/usr.bin/calendar/tests/regress.b2.out @@ -0,0 +1,4 @@ +Dec 29 dec 29 +Dec 30 dec 30 +Dec 31 dec 31 +Jan 1 jan 1 diff --git a/usr.bin/calendar/tests/regress.b3.out b/usr.bin/calendar/tests/regress.b3.out new file mode 100644 index 000000000000..9dabd3393352 --- /dev/null +++ b/usr.bin/calendar/tests/regress.b3.out @@ -0,0 +1,4 @@ +Dec 30 dec 30 +Dec 31 dec 31 +Jan 1 jan 1 +Jan 2 jan 2 diff --git a/usr.bin/calendar/tests/regress.b4.out b/usr.bin/calendar/tests/regress.b4.out new file mode 100644 index 000000000000..e3756b11f2b4 --- /dev/null +++ b/usr.bin/calendar/tests/regress.b4.out @@ -0,0 +1,4 @@ +Dec 31 dec 31 +Jan 1 jan 1 +Jan 2 jan 2 +Jan 3 jan 3 diff --git a/usr.bin/calendar/tests/regress.b5.out b/usr.bin/calendar/tests/regress.b5.out new file mode 100644 index 000000000000..4f61d48b291b --- /dev/null +++ b/usr.bin/calendar/tests/regress.b5.out @@ -0,0 +1,4 @@ +Jan 1 jan 1 +Jan 2 jan 2 +Jan 3 jan 3 +Jan 4 jan 4 diff --git a/usr.bin/calendar/tests/regress.s1.out b/usr.bin/calendar/tests/regress.s1.out new file mode 100644 index 000000000000..0fed38ba2486 --- /dev/null +++ b/usr.bin/calendar/tests/regress.s1.out @@ -0,0 +1,4 @@ +Dec 29 dec 29 +Dec 30 dec 30 +Dec 31 dec 31 +Jan 1 jan 1 diff --git a/usr.bin/calendar/tests/regress.s2.out b/usr.bin/calendar/tests/regress.s2.out new file mode 100644 index 000000000000..65ab9c9c2733 --- /dev/null +++ b/usr.bin/calendar/tests/regress.s2.out @@ -0,0 +1,2 @@ +Dec 30 dec 30 +Dec 31 dec 31 diff --git a/usr.bin/calendar/tests/regress.s3.out b/usr.bin/calendar/tests/regress.s3.out new file mode 100644 index 000000000000..0c6120786ad0 --- /dev/null +++ b/usr.bin/calendar/tests/regress.s3.out @@ -0,0 +1,2 @@ +Dec 31 dec 31 +Jan 1 jan 1 diff --git a/usr.bin/calendar/tests/regress.s4.out b/usr.bin/calendar/tests/regress.s4.out new file mode 100644 index 000000000000..848976936398 --- /dev/null +++ b/usr.bin/calendar/tests/regress.s4.out @@ -0,0 +1,2 @@ +Jan 1 jan 1 +Jan 2 jan 2 diff --git a/usr.bin/calendar/tests/regress.sh b/usr.bin/calendar/tests/regress.sh new file mode 100644 index 000000000000..248123ac5dac --- /dev/null +++ b/usr.bin/calendar/tests/regress.sh @@ -0,0 +1,45 @@ +# $FreeBSD$ + +CALENDAR_FILE="-f ${SRCDIR}/calendar.calibrate" +CALENDAR_BIN="calendar" + +CALENDAR="${CALENDAR_BIN} ${CALENDAR_FILE}" + +REGRESSION_START($1) + +echo 1..28 + +REGRESSION_TEST(`s1',`$CALENDAR -t 29.12.2006') +REGRESSION_TEST(`s2',`$CALENDAR -t 30.12.2006') +REGRESSION_TEST(`s3',`$CALENDAR -t 31.12.2006') +REGRESSION_TEST(`s4',`$CALENDAR -t 01.01.2007') + +REGRESSION_TEST(`a1',`$CALENDAR -A 3 -t 28.12.2006') +REGRESSION_TEST(`a2',`$CALENDAR -A 3 -t 29.12.2006') +REGRESSION_TEST(`a3',`$CALENDAR -A 3 -t 30.12.2006') +REGRESSION_TEST(`a4',`$CALENDAR -A 3 -t 31.12.2006') +REGRESSION_TEST(`a5',`$CALENDAR -A 3 -t 01.01.2007') + +REGRESSION_TEST(`b1',`$CALENDAR -B 3 -t 31.12.2006') +REGRESSION_TEST(`b2',`$CALENDAR -B 3 -t 01.01.2007') +REGRESSION_TEST(`b3',`$CALENDAR -B 3 -t 02.01.2007') +REGRESSION_TEST(`b4',`$CALENDAR -B 3 -t 03.01.2007') +REGRESSION_TEST(`b5',`$CALENDAR -B 3 -t 04.01.2007') + +REGRESSION_TEST(`w0-1',`$CALENDAR -W 0 -t 28.12.2006') +REGRESSION_TEST(`w0-2',`$CALENDAR -W 0 -t 29.12.2006') +REGRESSION_TEST(`w0-3',`$CALENDAR -W 0 -t 30.12.2006') +REGRESSION_TEST(`w0-4',`$CALENDAR -W 0 -t 31.12.2006') +REGRESSION_TEST(`w0-5',`$CALENDAR -W 0 -t 01.01.2007') +REGRESSION_TEST(`w0-6',`$CALENDAR -W 0 -t 02.01.2007') +REGRESSION_TEST(`w0-7',`$CALENDAR -W 0 -t 03.01.2007') + +REGRESSION_TEST(`wn-1',`$CALENDAR -W 0 -t 28.12.2006') +REGRESSION_TEST(`wn-2',`$CALENDAR -W 1 -t 28.12.2006') +REGRESSION_TEST(`wn-3',`$CALENDAR -W 2 -t 28.12.2006') +REGRESSION_TEST(`wn-4',`$CALENDAR -W 3 -t 28.12.2006') +REGRESSION_TEST(`wn-5',`$CALENDAR -W 4 -t 28.12.2006') +REGRESSION_TEST(`wn-6',`$CALENDAR -W 5 -t 28.12.2006') +REGRESSION_TEST(`wn-7',`$CALENDAR -W 6 -t 28.12.2006') + +REGRESSION_END() diff --git a/usr.bin/calendar/tests/regress.w0-1.out b/usr.bin/calendar/tests/regress.w0-1.out new file mode 100644 index 000000000000..5bd407202318 --- /dev/null +++ b/usr.bin/calendar/tests/regress.w0-1.out @@ -0,0 +1 @@ +Dec 28 dec 28 diff --git a/usr.bin/calendar/tests/regress.w0-2.out b/usr.bin/calendar/tests/regress.w0-2.out new file mode 100644 index 000000000000..66e70639ce56 --- /dev/null +++ b/usr.bin/calendar/tests/regress.w0-2.out @@ -0,0 +1 @@ +Dec 29 dec 29 diff --git a/usr.bin/calendar/tests/regress.w0-3.out b/usr.bin/calendar/tests/regress.w0-3.out new file mode 100644 index 000000000000..03073eee3a4b --- /dev/null +++ b/usr.bin/calendar/tests/regress.w0-3.out @@ -0,0 +1 @@ +Dec 30 dec 30 diff --git a/usr.bin/calendar/tests/regress.w0-4.out b/usr.bin/calendar/tests/regress.w0-4.out new file mode 100644 index 000000000000..a14f6b68b2fa --- /dev/null +++ b/usr.bin/calendar/tests/regress.w0-4.out @@ -0,0 +1 @@ +Dec 31 dec 31 diff --git a/usr.bin/calendar/tests/regress.w0-5.out b/usr.bin/calendar/tests/regress.w0-5.out new file mode 100644 index 000000000000..1232b9b2d9ec --- /dev/null +++ b/usr.bin/calendar/tests/regress.w0-5.out @@ -0,0 +1 @@ +Jan 1 jan 1 diff --git a/usr.bin/calendar/tests/regress.w0-6.out b/usr.bin/calendar/tests/regress.w0-6.out new file mode 100644 index 000000000000..b3545a21bd9a --- /dev/null +++ b/usr.bin/calendar/tests/regress.w0-6.out @@ -0,0 +1 @@ +Jan 2 jan 2 diff --git a/usr.bin/calendar/tests/regress.w0-7.out b/usr.bin/calendar/tests/regress.w0-7.out new file mode 100644 index 000000000000..6449760481f6 --- /dev/null +++ b/usr.bin/calendar/tests/regress.w0-7.out @@ -0,0 +1 @@ +Jan 3 jan 3 diff --git a/usr.bin/calendar/tests/regress.wn-1.out b/usr.bin/calendar/tests/regress.wn-1.out new file mode 100644 index 000000000000..5bd407202318 --- /dev/null +++ b/usr.bin/calendar/tests/regress.wn-1.out @@ -0,0 +1 @@ +Dec 28 dec 28 diff --git a/usr.bin/calendar/tests/regress.wn-2.out b/usr.bin/calendar/tests/regress.wn-2.out new file mode 100644 index 000000000000..84a2b33a2969 --- /dev/null +++ b/usr.bin/calendar/tests/regress.wn-2.out @@ -0,0 +1,2 @@ +Dec 28 dec 28 +Dec 29 dec 29 diff --git a/usr.bin/calendar/tests/regress.wn-3.out b/usr.bin/calendar/tests/regress.wn-3.out new file mode 100644 index 000000000000..7f027e59a8fe --- /dev/null +++ b/usr.bin/calendar/tests/regress.wn-3.out @@ -0,0 +1,3 @@ +Dec 28 dec 28 +Dec 29 dec 29 +Dec 30 dec 30 diff --git a/usr.bin/calendar/tests/regress.wn-4.out b/usr.bin/calendar/tests/regress.wn-4.out new file mode 100644 index 000000000000..ef3d71db5e57 --- /dev/null +++ b/usr.bin/calendar/tests/regress.wn-4.out @@ -0,0 +1,4 @@ +Dec 28 dec 28 +Dec 29 dec 29 +Dec 30 dec 30 +Dec 31 dec 31 diff --git a/usr.bin/calendar/tests/regress.wn-5.out b/usr.bin/calendar/tests/regress.wn-5.out new file mode 100644 index 000000000000..c38c00b86cef --- /dev/null +++ b/usr.bin/calendar/tests/regress.wn-5.out @@ -0,0 +1,5 @@ +Dec 28 dec 28 +Dec 29 dec 29 +Dec 30 dec 30 +Dec 31 dec 31 +Jan 1 jan 1 diff --git a/usr.bin/calendar/tests/regress.wn-6.out b/usr.bin/calendar/tests/regress.wn-6.out new file mode 100644 index 000000000000..63c99fe44e6e --- /dev/null +++ b/usr.bin/calendar/tests/regress.wn-6.out @@ -0,0 +1,6 @@ +Dec 28 dec 28 +Dec 29 dec 29 +Dec 30 dec 30 +Dec 31 dec 31 +Jan 1 jan 1 +Jan 2 jan 2 diff --git a/usr.bin/calendar/tests/regress.wn-7.out b/usr.bin/calendar/tests/regress.wn-7.out new file mode 100644 index 000000000000..4b48f68101c3 --- /dev/null +++ b/usr.bin/calendar/tests/regress.wn-7.out @@ -0,0 +1,7 @@ +Dec 28 dec 28 +Dec 29 dec 29 +Dec 30 dec 30 +Dec 31 dec 31 +Jan 1 jan 1 +Jan 2 jan 2 +Jan 3 jan 3 diff --git a/usr.bin/leave/leave.1 b/usr.bin/leave/leave.1 index 919f9f7fbe5f..dd4f3d0d4a00 100644 --- a/usr.bin/leave/leave.1 +++ b/usr.bin/leave/leave.1 @@ -87,6 +87,8 @@ To get rid of you should either log off or use .Ql kill \-s KILL giving its process id. +.Sh SEE ALSO +.Xr calendar 1 .Sh HISTORY The .Nm diff --git a/usr.sbin/periodic/etc/daily/300.calendar b/usr.sbin/periodic/etc/daily/300.calendar new file mode 100755 index 000000000000..cc12097162e5 --- /dev/null +++ b/usr.sbin/periodic/etc/daily/300.calendar @@ -0,0 +1,29 @@ +#!/bin/sh +# +# $FreeBSD$ +# +# `calendar -a' needs to die. Why? Because it's a bad idea, particular +# with networked home directories, but also in general. If you want the +# output of `calendar' mailed to you, set up a cron job to do it, +# or run it from your ~/.profile or ~/.login. +# + +# If there is a global system configuration file, suck it in. +# +if [ -r /etc/defaults/periodic.conf ] +then + . /etc/defaults/periodic.conf + source_periodic_confs +fi + +case "$daily_calendar_enable" in + [Yy][Ee][Ss]) + echo "" + echo "Running calendar:" + + calendar -a && rc=0 || rc=3;; + + *) rc=0;; +esac + +exit $rc diff --git a/usr.sbin/periodic/etc/daily/Makefile b/usr.sbin/periodic/etc/daily/Makefile index 97e8ea355697..b65bc1310cb4 100644 --- a/usr.sbin/periodic/etc/daily/Makefile +++ b/usr.sbin/periodic/etc/daily/Makefile @@ -33,6 +33,10 @@ ACCTMODE= ${BINMODE} ACCTPACKAGE= acct .endif +.if ${MK_CALENDAR} != "no" +CONFS+= 300.calendar +.endif + .if ${MK_MAIL} != "no" CONFS+= 130.clean-msgs .endif diff --git a/usr.sbin/periodic/periodic.conf b/usr.sbin/periodic/periodic.conf index d1c7bb274666..801733301318 100644 --- a/usr.sbin/periodic/periodic.conf +++ b/usr.sbin/periodic/periodic.conf @@ -77,6 +77,9 @@ daily_backup_passwd_enable="YES" # Backup passwd & group # 210.backup-aliases daily_backup_aliases_enable="YES" # Backup mail aliases +# 300.calendar +daily_calendar_enable="NO" # Run calendar -a + # 310.accounting daily_accounting_enable="YES" # Rotate acct files daily_accounting_compress="NO" # Gzip rotated files