home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Frozen Fish 2: PC
/
frozenfish_august_1995.bin
/
bbs
/
d09xx
/
d0975.lha
/
PCal
/
calendar.dat
next >
Wrap
Text File
|
1994-02-14
|
12KB
|
312 lines
# Sample date file for Pcal: this should be called .calendar for Un*x,
# CALENDAR.DAT for VMS, and should live in the user's home directory.
#
# Date file syntax:
#
# The following rules describe the syntax of date file entries:
#
# year <year>
#
# opt <options>
#
# note{/<number>} <month_spec> <text>
# note{/<number>} <month> <text>
#
# if -A flag (American date formats) specified:
# <month_name> <day>{*} {<text>}
# <month><sep><day>{<sep><year>}{*} {<text>}
#
# if -E flag (European date formats) specified:
# <day> <month_name>{*} {<text>}
# <day><sep><month>{<sep><year>}{*} {<text>}
#
# <ordinal> <day_name> in <month_spec>{*} {<text>}
# <day_name> <prep> <date_spec>
#
# where
#
# {x} means x is optional
#
# <date_spec> := any of the above date specs (not year, note, or opt)
# <month_name> := first 3+ characters of name of month, or "all"
# <month_spec> := <month_name>, or "year"
# <day_name> := first 3+ characters of name of weekday, "day",
# "weekday", "workday", "holiday", "nonweekday",
# "nonworkday", "nonholiday", "new_moon",
# "first_quarter", "full_moon", or "last_quarter"
# <ordinal> := ordinal number ("1st", "2nd", etc.), "first" .. "fifth",
# "last", "even", "odd", or "all"
# <prep> := "before", "preceding", "after", "following", "nearest",
# "on_or_before", or "on_or_after"
# <sep> := one or more non-numeric, non-space, non-'*' characters
# <month>, <day>, <year> are the numeric forms
#
# <options> := any command-line option except -[cefhuvDU]
#
# Comments start with '#' and run through end-of-line.
#
# Holidays may be flagged by specifying '*' as the last character of
# the date field(s), e.g. "10/12* Columbus Day", "July 4* Independence
# Day", etc. Any dates flagged as holidays will be printed in gray, and
# any associated text will appear adjacent to the date.
#
# Note that the numeric date formats (mm/dd{/yy}, dd.mm{.yy}) support
# an optional year, which will become the subsequent default year. The
# alphabetic date formats (month dd, dd month) do not support a year
# field; the "year yy" command is provided to reset the default year.
#
# "Floating" days may be specified in the date file as "first Mon in
# Sep", "last Mon in May", "4th Thu in Nov", etc.; any word may be
# used in place of "in". "Relative floating" days (e.g. "Fri after 4th
# Thu in Nov") are also accepted; they may span month/year bounds.
# Pcal also accepts date specs such as "all Friday{s} in October", "last
# Thursday in all", etc., and produces the expected results; "each" and
# "every" are accepted as synonyms for "all". Negative ordinals are
# allowed; "-2nd" means "next to last".
#
# The words "day", "weekday", "workday", and "holiday" may be used as
# wildcards: "day" matches any day, "weekday" matches any day normally
# printed in black, "workday" matches any day normally printed in black
# and not explicitly flagged as a holiday, and "holiday" matches any
# day explicitly flagged as a holiday. "Nonweekday", "nonworkday",
# and "nonholiday" are also supported and have the obvious meanings.
# Moon phases may also appear as wildcards; "nm" is accepted as a
# synonym for "new_moon", "1q" and "fq" for "first_quarter", "fm" for
# "full_moon", and "3q", "lq", and "third_quarter" for "last_quarter".
#
# "Odd" and "even" do not refer to the actual date; instead, "odd"
# means "alternate, starting with the first"; "even" means "alternate,
# starting with the second". Thus, "odd Fridays in March" refers to
# the first, third, and (if present) fifth Fridays in March - not to
# those Fridays falling on odd dates.
#
# "All" refers to each individual month; "year" refers to the year
# as an entity. Thus "odd Fridays in all" refers to the first/third/
# fifth Friday of each month, while "odd Fridays in year" refers to
# the first Friday of January and every other Friday thereafter.
#
# Additional notes may be propagated to an empty calendar box by the
# inclusion of one or more lines of the form "note{/<number>} <month>
# <text>", where <month> may be numeric or alphabetic; "note{/<number>}
# all <text>" propagates <text> to each month in the current year.
# <number> is an optional positive or negative number specifying the
# empty box where the associated text is to be placed: if positive,
# Pcal counts forward from the first empty box; if negative, Pcal counts
# backward from the last empty box. Thus, "note/1 ..." places the
# associated text in the first empty box, and "note/-3 ..." in the
# third-to-last; the default is -1 (last empty box). (Note that if the
# -S option is used, it must be specified either on the command line or
# prior to any "note" lines in the date file.)
#
# Pcal also allows format specifiers in the text (and foot strings -
# cf. the -L, -C, -R, and -N options); each will be replaced by its
# equivalent string as outlined in the table below. (Most of these are
# derived from the strftime() function; %[louwMD0+-] are Pcal-specific.)
#
# %a : abbreviated weekday
# %A : full weekday
# %b : abbreviated month name
# %B : full month name
# %d : day of month (1-31)
# %j : day of year (1-366)
# %l : days left in year (0-365)
# %m : month (1-12)
# %u : week number (1-54)
# %U : week number (0-53)
# %w : week number (1-54)
# %W : week number (0-53)
# %y : year w/o century (00-99)
# %Y : year w/century
# %% : '%' character
#
# %o : print number as ordinal
# %0 : print number with leading zeroes
# %+ : use following month or year
# %- : use previous month or year
# %{+N}[DWMY] : adjust date by +N days/weeks/months/years
# %{-N}[DWMY] : adjust date by -N days/weeks/months/years
#
# %u considers the week containing 1/1 as week 1 and the following
# logical Sunday (the first day of the week as printed; cf. the -F
# flag) as the start of week 2; %U considers the first logical Sunday
# as the first day of week 1. %w and %W behave like %u and %U
# respectively, but use the first logical Monday instead. (Note that
# %w has a different meaning to strftime().)
#
# %o prints a number as an ordinal, with the appropriate suffix ("st",
# "nd", "rd", or "th" in English) appended; for example, "%od" prints
# the day of the month as "1st", "2nd", "3rd", etc.
#
# Unlike strftime(), Pcal's default is to print numbers (except %y)
# without leading zeroes. If leading zeroes are desired, the '0'
# prefix may be used; for example, "%0j" prints the day of year as
# 001-365.
#
# %+ and %- direct Pcal to substitute the following/previous month/year
# in the following [bBmyY] specifier; for example, "%+B" prints the
# name of the next month.
#
# %{[+-]N}[DWMY] do not print anything, but instead adjust the
# working date by +-N days (D), weeks (W), months (M), or years (Y);
# subsequent format specifiers use the adjusted date instead of the
# current date. For example, "%+1M %B %Y" adjusts the date forward by
# one month and then prints the resulting month and year ("January
# 1991" in December, 1990); "%-2W %b %d" adjusts the date backward
# by two weeks and prints the resulting month and day ("Jul 26" on
# August 9).
#
# Such date adjustments are normally cumulative; for example,
# "%+1Y%-1D" adjusts the date forward by one year and then backward
# by one day. If %D or %M is specified alone (or if N is zero), Pcal
# restores the original date. (Note that %M has a different meaning
# to strftime().)
#
# The "Notes" box uses the first of the current month as the default
# date. All foot strings use the first of the current month in single-
# month mode and the first of the starting month in whole-year mode.
#
# Simple cpp-like functionality is provided. The date file may include
# the following commands, which work like their cpp counterparts:
#
# define <sym>
# undef <sym>
#
# if{{n}def} <expr>
# ...
# { elif <expr>
# ... }*
# { else
# ... }
# endif
#
# include <file>
#
# Note that these do not start with '#', which is reserved as a comment
# character.
#
# <sym> is a symbol name consisting of a letter followed by zero or
# more letters, digits, or underscores ('_'). Symbol names are always
# treated in a case-insensitive manner.
#
# <expr> is an expression consisting of symbol names joined by the logical
# operators (in order of precedence, high to low) '!' (unary negate), '&'
# (and), '^' (exclusive or), and '|' (inclusive or). '&&' and '||' are
# accepted as synonyms for '&' and '|' respectively; the order of
# evaluation may be altered by the use of parentheses. A symbol whose
# name is currently defined evaluates to TRUE; one whose name is not
# currently defined evaluates to FALSE. Thus "ifdef A | B | C" is TRUE
# if any of the symbols A, B, and C is currently defined, and
# "ifdef A & B & C" is TRUE if all of them are.
#
# "ifndef A | B | C" is equivalent to "ifdef !(A | B | C)" (or, using
# DeMorgan's Law, "ifdef !A & !B & !C") - in other words, TRUE if none of
# the symbols A, B, and C is currently defined.
#
# "if" is accepted as a synonym for "ifdef".
#
# "elif A" is TRUE if A is defined. Multiple "elif" clauses may appear;
# at most one "if{{n}def}", "elif", or "else" clause in a given block
# will be processed.
#
# "define" alone deletes all the current definitions; "if{def}" alone is
# always false; "ifndef" alone is always true.
#
# The file name in the "include" directive may optionally be surrounded
# by "" or <>; in any case, path names are taken to be relative to
# the location of the file containing the "include" directive. If the
# string "%y" appears in the file name, it is replaced by the last two
# digits of the current year.
#
# The "-w" flag defines the symbol "whole_year", which may be tested
# in the same manner as any user-defined symbol.
# "opt" lines to override program defaults
opt -d Helvetica-Bold -t Helvetica-Bold -n Helvetica/8 # override default fonts
opt -s 0.6/0.97 # override default date/fill box shading
opt -M # moon icons on all days
ifndef whole_year
opt -O # print outlined characters if "-w" NOT specified
endif
year 1994 # set year explicitly
# note to be propagated to "Notes" box (-2 = bottom center) for all months
opt -N Meetings: # alternate header for notes box
note/-2 all Engineering staff meeting every Tuesday, 1:30 PM
# examples of format specifiers
all Monday in all Fiscal week %W.%y # e.g. 26.91
last workday in all %B status meeting # substitute month name
2nd workday in all %-B status report due # use previous month
# some sample holidays (flagged by '*') and other days of note
1/1* New Year's Day
# if "AZ" or "MT" defined, holiday definition will be skipped
ifndef AZ || NH || MT
3rd Monday in Jan* Martin Luther King Day (except AZ, NH, MT)
endif
3rd Monday in Feb Presidents' Day
Feb 14 Valentine's Day
# any Pcal users in Alaska?
ifdef AK
first Sat in March Iditarod starts
endif
3/17 St. Patrick's Day
# another local holiday - included only if "MA" or "ME" defined
ifdef MA || ME
3rd Monday in Apr Patriots' Day (MA, ME)
endif
last Monday in May* Memorial Day
6/14 Flag Day
7/4* Independence Day
1st Monday in Sep* Labor Day
second Monday in Oct Columbus Day (observed)
10/31 Halloween
Tue after first Mon in Nov Election Day
second Mon in Nov Veterans' Day # (observed)
fourth Thu in Nov* Thanksgiving
day after fourth Thu in Nov*
12/24* Christmas Eve
12/25* Christmas
last day in Dec* New Year's Eve
# if the symbol "paydays" has been defined, print text on alternate
# Fridays (starting with the first Friday of the year)
ifdef paydays
odd Fridays in year Pay Day
endif
2nd full_moon in all Blue Moon
# if the symbol "meetings" has been defined, print text on the next-to-last
# Monday of each month
ifdef meetings
-2nd Monday in all Monthly staff meeting
endif
# if the symbol "whole_year" has been defined (either explicitly or implicitly
# via "-w"), print a center foot string containing the first and last dates of
# the year
ifdef whole_year
opt -C "Fiscal year %B %d, %Y - %+1Y%-1D%B %d, %Y"
endif
1/1/95* New Year's Day # reset year implicitly