Mercurial > emacs
annotate man/calendar.texi @ 42811:cf0c0ef57504
*** empty log message ***
| author | Jason Rumney <jasonr@gnu.org> |
|---|---|
| date | Thu, 17 Jan 2002 19:29:24 +0000 |
| parents | 3b40423b9355 |
| children | 90b567ad02ed |
| rev | line source |
|---|---|
| 25829 | 1 @c This is part of the Emacs manual. |
| 39287 | 2 @c Copyright (C) 1985,86,87,93,94,95,1997,2000,2001 Free Software Foundation, Inc. |
| 25829 | 3 @c See file emacs.texi for copying conditions. |
| 4 @node Calendar/Diary, Gnus, Dired, Top | |
| 5 @chapter The Calendar and the Diary | |
| 6 @cindex calendar | |
| 7 @findex calendar | |
| 8 | |
| 9 Emacs provides the functions of a desk calendar, with a diary of | |
|
36145
c70d510bdb54
Various clarifications.
Richard M. Stallman <rms@gnu.org>
parents:
30794
diff
changeset
|
10 planned or past events. It also has facilities for managing your |
|
c70d510bdb54
Various clarifications.
Richard M. Stallman <rms@gnu.org>
parents:
30794
diff
changeset
|
11 appointments, and keeping track of how much time you spend working on |
|
c70d510bdb54
Various clarifications.
Richard M. Stallman <rms@gnu.org>
parents:
30794
diff
changeset
|
12 certain projects. |
| 30794 | 13 |
| 14 To enter the calendar, type @kbd{M-x calendar}; this displays a | |
| 15 three-month calendar centered on the current month, with point on the | |
| 16 current date. With a numeric argument, as in @kbd{C-u M-x calendar}, it | |
| 17 prompts you for the month and year to be the center of the three-month | |
| 18 calendar. The calendar uses its own buffer, whose major mode is | |
| 19 Calendar mode. | |
| 25829 | 20 |
| 21 @kbd{Mouse-2} in the calendar brings up a menu of operations on a | |
| 22 particular date; @kbd{C-Mouse-3} brings up a menu of commonly used | |
| 23 calendar features that are independent of any particular date. To exit | |
| 24 the calendar, type @kbd{q}. @xref{Calendar, Customizing the Calendar | |
| 25 and Diary,, elisp, The Emacs Lisp Reference Manual}, for customization | |
| 26 information about the calendar and diary. | |
| 27 | |
| 28 @menu | |
| 29 * Calendar Motion:: Moving through the calendar; selecting a date. | |
| 30 * Scroll Calendar:: Bringing earlier or later months onto the screen. | |
| 31 * Counting Days:: How many days are there between two dates? | |
| 32 * General Calendar:: Exiting or recomputing the calendar. | |
| 33 * LaTeX Calendar:: Print a calendar using LaTeX. | |
| 34 * Holidays:: Displaying dates of holidays. | |
| 35 * Sunrise/Sunset:: Displaying local times of sunrise and sunset. | |
| 36 * Lunar Phases:: Displaying phases of the moon. | |
| 37 * Other Calendars:: Converting dates to other calendar systems. | |
| 38 * Diary:: Displaying events from your diary. | |
| 39 * Appointments:: Reminders when it's time to do something. | |
| 40 * Daylight Savings:: How to specify when daylight savings time is active. | |
| 30794 | 41 * Time Intervals:: Keeping track of time intervals. |
| 25829 | 42 @end menu |
| 43 | |
| 44 @node Calendar Motion | |
| 45 @section Movement in the Calendar | |
| 46 | |
| 47 @cindex moving inside the calendar | |
| 48 Calendar mode lets you move through the calendar in logical units of | |
| 49 time such as days, weeks, months, and years. If you move outside the | |
| 50 three months originally displayed, the calendar display ``scrolls'' | |
| 51 automatically through time to make the selected date visible. Moving to | |
| 52 a date lets you view its holidays or diary entries, or convert it to other | |
| 53 calendars; moving longer time periods is also useful simply to scroll the | |
| 54 calendar. | |
| 55 | |
| 56 @menu | |
| 57 * Calendar Unit Motion:: Moving by days, weeks, months, and years. | |
| 58 * Move to Beginning or End:: Moving to start/end of weeks, months, and years. | |
| 59 * Specified Dates:: Moving to the current date or another | |
| 60 specific date. | |
| 61 @end menu | |
| 62 | |
| 63 @node Calendar Unit Motion | |
| 64 @subsection Motion by Standard Lengths of Time | |
| 65 | |
| 66 The commands for movement in the calendar buffer parallel the | |
| 67 commands for movement in text. You can move forward and backward by | |
| 68 days, weeks, months, and years. | |
| 69 | |
| 70 @table @kbd | |
| 71 @item C-f | |
| 72 Move point one day forward (@code{calendar-forward-day}). | |
| 73 @item C-b | |
| 74 Move point one day backward (@code{calendar-backward-day}). | |
| 75 @item C-n | |
| 76 Move point one week forward (@code{calendar-forward-week}). | |
| 77 @item C-p | |
| 78 Move point one week backward (@code{calendar-backward-week}). | |
| 79 @item M-@} | |
| 80 Move point one month forward (@code{calendar-forward-month}). | |
| 81 @item M-@{ | |
| 82 Move point one month backward (@code{calendar-backward-month}). | |
| 83 @item C-x ] | |
| 84 Move point one year forward (@code{calendar-forward-year}). | |
| 85 @item C-x [ | |
| 86 Move point one year backward (@code{calendar-backward-year}). | |
| 87 @end table | |
| 88 | |
| 89 @kindex C-f @r{(Calendar mode)} | |
| 90 @findex calendar-forward-day | |
| 91 @kindex C-b @r{(Calendar mode)} | |
| 92 @findex calendar-backward-day | |
| 93 @kindex C-n @r{(Calendar mode)} | |
| 94 @findex calendar-forward-week | |
| 95 @kindex C-p @r{(Calendar mode)} | |
| 96 @findex calendar-backward-week | |
| 97 The day and week commands are natural analogues of the usual Emacs | |
| 98 commands for moving by characters and by lines. Just as @kbd{C-n} | |
| 99 usually moves to the same column in the following line, in Calendar | |
| 100 mode it moves to the same day in the following week. And @kbd{C-p} | |
| 101 moves to the same day in the previous week. | |
| 102 | |
| 103 The arrow keys are equivalent to @kbd{C-f}, @kbd{C-b}, @kbd{C-n} and | |
| 104 @kbd{C-p}, just as they normally are in other modes. | |
| 105 | |
| 106 @kindex M-@} @r{(Calendar mode)} | |
| 107 @findex calendar-forward-month | |
| 108 @kindex M-@{ @r{(Calendar mode)} | |
| 109 @findex calendar-backward-month | |
| 110 @kindex C-x ] @r{(Calendar mode)} | |
| 111 @findex calendar-forward-year | |
| 112 @kindex C-x [ @r{(Calendar mode)} | |
| 113 @findex calendar-forward-year | |
| 114 The commands for motion by months and years work like those for | |
| 115 weeks, but move a larger distance. The month commands @kbd{M-@}} and | |
| 116 @kbd{M-@{} move forward or backward by an entire month's time. The | |
| 117 year commands @kbd{C-x ]} and @w{@kbd{C-x [}} move forward or backward a | |
| 118 whole year. | |
| 119 | |
| 120 The easiest way to remember these commands is to consider months and | |
| 121 years analogous to paragraphs and pages of text, respectively. But the | |
| 122 commands themselves are not quite analogous. The ordinary Emacs paragraph | |
| 123 commands move to the beginning or end of a paragraph, whereas these month | |
| 124 and year commands move by an entire month or an entire year, which usually | |
| 125 involves skipping across the end of a month or year. | |
| 126 | |
| 127 All these commands accept a numeric argument as a repeat count. | |
| 128 For convenience, the digit keys and the minus sign specify numeric | |
| 129 arguments in Calendar mode even without the Meta modifier. For example, | |
| 130 @kbd{100 C-f} moves point 100 days forward from its present location. | |
| 131 | |
| 132 @node Move to Beginning or End | |
| 133 @subsection Beginning or End of Week, Month or Year | |
| 134 | |
| 135 A week (or month, or year) is not just a quantity of days; we think of | |
| 136 weeks (months, years) as starting on particular dates. So Calendar mode | |
| 137 provides commands to move to the beginning or end of a week, month or | |
| 138 year: | |
| 139 | |
| 140 @table @kbd | |
| 141 @kindex C-a @r{(Calendar mode)} | |
| 142 @findex calendar-beginning-of-week | |
| 143 @item C-a | |
| 144 Move point to start of week (@code{calendar-beginning-of-week}). | |
| 145 @kindex C-e @r{(Calendar mode)} | |
| 146 @findex calendar-end-of-week | |
| 147 @item C-e | |
| 148 Move point to end of week (@code{calendar-end-of-week}). | |
| 149 @kindex M-a @r{(Calendar mode)} | |
| 150 @findex calendar-beginning-of-month | |
| 151 @item M-a | |
| 152 Move point to start of month (@code{calendar-beginning-of-month}). | |
| 153 @kindex M-e @r{(Calendar mode)} | |
| 154 @findex calendar-end-of-month | |
| 155 @item M-e | |
| 156 Move point to end of month (@code{calendar-end-of-month}). | |
| 157 @kindex M-< @r{(Calendar mode)} | |
| 158 @findex calendar-beginning-of-year | |
| 159 @item M-< | |
| 160 Move point to start of year (@code{calendar-beginning-of-year}). | |
| 161 @kindex M-> @r{(Calendar mode)} | |
| 162 @findex calendar-end-of-year | |
| 163 @item M-> | |
| 164 Move point to end of year (@code{calendar-end-of-year}). | |
| 165 @end table | |
| 166 | |
| 167 These commands also take numeric arguments as repeat counts, with the | |
| 168 repeat count indicating how many weeks, months, or years to move | |
| 169 backward or forward. | |
| 170 | |
| 171 @vindex calendar-week-start-day | |
| 172 @cindex weeks, which day they start on | |
| 173 @cindex calendar, first day of week | |
| 174 By default, weeks begin on Sunday. To make them begin on Monday | |
| 175 instead, set the variable @code{calendar-week-start-day} to 1. | |
| 176 | |
| 177 @node Specified Dates | |
| 178 @subsection Specified Dates | |
| 179 | |
| 180 Calendar mode provides commands for moving to a particular date | |
| 181 specified in various ways. | |
| 182 | |
| 183 @table @kbd | |
| 184 @item g d | |
| 185 Move point to specified date (@code{calendar-goto-date}). | |
| 186 @item o | |
| 187 Center calendar around specified month (@code{calendar-other-month}). | |
| 188 @item . | |
| 189 Move point to today's date (@code{calendar-goto-today}). | |
| 190 @end table | |
| 191 | |
| 192 @kindex g d @r{(Calendar mode)} | |
| 193 @findex calendar-goto-date | |
| 194 @kbd{g d} (@code{calendar-goto-date}) prompts for a year, a month, and a day | |
| 195 of the month, and then moves to that date. Because the calendar includes all | |
| 196 dates from the beginning of the current era, you must type the year in its | |
| 197 entirety; that is, type @samp{1990}, not @samp{90}. | |
| 198 | |
| 199 @kindex o @r{(Calendar mode)} | |
| 200 @findex calendar-other-month | |
| 201 @kbd{o} (@code{calendar-other-month}) prompts for a month and year, | |
| 202 then centers the three-month calendar around that month. | |
| 203 | |
| 204 @kindex . @r{(Calendar mode)} | |
| 205 @findex calendar-goto-today | |
| 206 You can return to today's date with @kbd{.}@: | |
| 207 (@code{calendar-goto-today}). | |
| 208 | |
| 209 @node Scroll Calendar | |
| 210 @section Scrolling in the Calendar | |
| 211 | |
| 212 @cindex scrolling in the calendar | |
| 38745 | 213 The calendar display scrolls automatically through time when you |
| 214 move out of the visible portion. You can also scroll it manually. | |
| 215 Imagine that the calendar window contains a long strip of paper with | |
| 216 the months on it. Scrolling the calendar means moving the strip | |
| 217 horizontally, so that new months become visible in the window. | |
| 25829 | 218 |
| 219 @table @kbd | |
| 220 @item C-x < | |
| 221 Scroll calendar one month forward (@code{scroll-calendar-left}). | |
| 222 @item C-x > | |
| 223 Scroll calendar one month backward (@code{scroll-calendar-right}). | |
| 224 @item C-v | |
| 225 @itemx @key{NEXT} | |
| 226 Scroll calendar three months forward | |
| 227 (@code{scroll-calendar-left-three-months}). | |
| 228 @item M-v | |
| 229 @itemx @key{PRIOR} | |
| 230 Scroll calendar three months backward | |
| 231 (@code{scroll-calendar-right-three-months}). | |
| 232 @end table | |
| 233 | |
| 234 @kindex C-x < @r{(Calendar mode)} | |
| 235 @findex scroll-calendar-left | |
| 236 @kindex C-x > @r{(Calendar mode)} | |
| 237 @findex scroll-calendar-right | |
| 238 The most basic calendar scroll commands scroll by one month at a | |
| 239 time. This means that there are two months of overlap between the | |
| 240 display before the command and the display after. @kbd{C-x <} scrolls | |
| 241 the calendar contents one month to the left; that is, it moves the | |
| 242 display forward in time. @kbd{C-x >} scrolls the contents to the | |
| 243 right, which moves backwards in time. | |
| 244 | |
| 245 @kindex C-v @r{(Calendar mode)} | |
| 246 @findex scroll-calendar-left-three-months | |
| 247 @kindex M-v @r{(Calendar mode)} | |
| 248 @findex scroll-calendar-right-three-months | |
| 249 The commands @kbd{C-v} and @kbd{M-v} scroll the calendar by an entire | |
| 250 ``screenful''---three months---in analogy with the usual meaning of | |
| 251 these commands. @kbd{C-v} makes later dates visible and @kbd{M-v} makes | |
| 252 earlier dates visible. These commands take a numeric argument as a | |
| 253 repeat count; in particular, since @kbd{C-u} multiplies the next command | |
| 254 by four, typing @kbd{C-u C-v} scrolls the calendar forward by a year and | |
| 255 typing @kbd{C-u M-v} scrolls the calendar backward by a year. | |
| 256 | |
| 257 The function keys @key{NEXT} and @key{PRIOR} are equivalent to | |
| 258 @kbd{C-v} and @kbd{M-v}, just as they are in other modes. | |
| 259 | |
| 260 @node Counting Days | |
| 261 @section Counting Days | |
| 262 | |
| 263 @table @kbd | |
| 264 @item M-= | |
| 265 Display the number of days in the current region | |
| 266 (@code{calendar-count-days-region}). | |
| 267 @end table | |
| 268 | |
| 269 @kindex M-= @r{(Calendar mode)} | |
| 270 @findex calendar-count-days-region | |
| 271 To determine the number of days in the region, type @kbd{M-=} | |
|
38870
d44abb4e68b2
Don't use "print" for displaying a message.
Richard M. Stallman <rms@gnu.org>
parents:
38745
diff
changeset
|
272 (@code{calendar-count-days-region}). The numbers of days shown is |
| 25829 | 273 @emph{inclusive}; that is, it includes the days specified by mark and |
| 274 point. | |
| 275 | |
| 276 @node General Calendar | |
| 277 @section Miscellaneous Calendar Commands | |
| 278 | |
| 279 @table @kbd | |
| 280 @item p d | |
| 281 Display day-in-year (@code{calendar-print-day-of-year}). | |
| 282 @item C-c C-l | |
| 283 Regenerate the calendar window (@code{redraw-calendar}). | |
| 284 @item SPC | |
| 285 Scroll the next window (@code{scroll-other-window}). | |
| 286 @item q | |
| 287 Exit from calendar (@code{exit-calendar}). | |
| 288 @end table | |
| 289 | |
| 290 @kindex p d @r{(Calendar mode)} | |
| 291 @cindex day of year | |
| 292 @findex calendar-print-day-of-year | |
|
38870
d44abb4e68b2
Don't use "print" for displaying a message.
Richard M. Stallman <rms@gnu.org>
parents:
38745
diff
changeset
|
293 To display the number of days elapsed since the start of the year, or |
| 25829 | 294 the number of days remaining in the year, type the @kbd{p d} command |
| 295 (@code{calendar-print-day-of-year}). This displays both of those | |
| 296 numbers in the echo area. The number of days elapsed includes the | |
| 297 selected date. The number of days remaining does not include that | |
| 298 date. | |
| 299 | |
| 300 @kindex C-c C-l @r{(Calendar mode)} | |
| 301 @findex redraw-calendar | |
| 302 If the calendar window text gets corrupted, type @kbd{C-c C-l} | |
| 303 (@code{redraw-calendar}) to redraw it. (This can only happen if you use | |
| 304 non-Calendar-mode editing commands.) | |
| 305 | |
| 306 @kindex SPC @r{(Calendar mode)} | |
| 307 In Calendar mode, you can use @kbd{SPC} (@code{scroll-other-window}) | |
| 308 to scroll the other window. This is handy when you display a list of | |
| 309 holidays or diary entries in another window. | |
| 310 | |
| 311 @kindex q @r{(Calendar mode)} | |
| 312 @findex exit-calendar | |
| 313 To exit from the calendar, type @kbd{q} (@code{exit-calendar}). This | |
| 314 buries all buffers related to the calendar, selecting other buffers. | |
| 315 (If a frame contains a dedicated calendar window, exiting from the | |
| 316 calendar iconifies that frame.) | |
| 317 | |
| 318 @node LaTeX Calendar | |
| 319 @section LaTeX Calendar | |
| 320 @cindex calendar and La@TeX{} | |
| 321 | |
| 322 The Calendar La@TeX{} commands produce a buffer of La@TeX{} code that | |
| 323 prints as a calendar. Depending on the command you use, the printed | |
| 324 calendar covers the day, week, month or year that point is in. | |
| 325 | |
| 326 @kindex t @r{(Calendar mode)} | |
| 327 @table @kbd | |
| 328 @item t m | |
| 329 Generate a one-month calendar (@code{cal-tex-cursor-month}). | |
| 330 @item t M | |
| 331 Generate a sideways-printing one-month calendar | |
| 332 (@code{cal-tex-cursor-month-landscape}). | |
| 333 @item t d | |
| 334 Generate a one-day calendar | |
| 335 (@code{cal-tex-cursor-day}). | |
| 336 @item t w 1 | |
| 337 Generate a one-page calendar for one week | |
| 338 (@code{cal-tex-cursor-week}). | |
| 339 @item t w 2 | |
| 340 Generate a two-page calendar for one week | |
| 341 (@code{cal-tex-cursor-week2}). | |
| 342 @item t w 3 | |
| 343 Generate an ISO-style calendar for one week | |
| 344 (@code{cal-tex-cursor-week-iso}). | |
| 345 @item t w 4 | |
| 346 Generate a calendar for one Monday-starting week | |
| 347 (@code{cal-tex-cursor-week-monday}). | |
| 348 @item t f w | |
| 349 Generate a Filofax-style two-weeks-at-a-glance calendar | |
| 350 (@code{cal-tex-cursor-filofax-2week}). | |
| 351 @item t f W | |
| 352 Generate a Filofax-style one-week-at-a-glance calendar | |
| 353 (@code{cal-tex-cursor-filofax-week}). | |
| 354 @item t y | |
| 355 Generate a calendar for one year | |
| 356 (@code{cal-tex-cursor-year}). | |
| 357 @item t Y | |
| 358 Generate a sideways-printing calendar for one year | |
| 359 (@code{cal-tex-cursor-year-landscape}). | |
| 360 @item t f y | |
| 361 Generate a Filofax-style calendar for one year | |
| 362 (@code{cal-tex-cursor-filofax-year}). | |
| 363 @end table | |
| 364 | |
| 365 Some of these commands print the calendar sideways (in ``landscape | |
| 366 mode''), so it can be wider than it is long. Some of them use Filofax | |
| 367 paper size (3.75in x 6.75in). All of these commands accept a prefix | |
| 368 argument which specifies how many days, weeks, months or years to print | |
| 369 (starting always with the selected one). | |
| 370 | |
| 371 If the variable @code{cal-tex-holidays} is non-@code{nil} (the default), | |
| 372 then the printed calendars show the holidays in @code{calendar-holidays}. | |
| 373 If the variable @code{cal-tex-diary} is non-@code{nil} (the default is | |
| 374 @code{nil}), diary entries are included also (in weekly and monthly | |
| 375 calendars only). If the variable @code{cal-tex-rules} is non-@code{nil} | |
|
36145
c70d510bdb54
Various clarifications.
Richard M. Stallman <rms@gnu.org>
parents:
30794
diff
changeset
|
376 (the default is @code{nil}), the calendar displays ruled pages |
|
c70d510bdb54
Various clarifications.
Richard M. Stallman <rms@gnu.org>
parents:
30794
diff
changeset
|
377 in styles that have sufficient room. |
| 25829 | 378 |
| 379 @node Holidays | |
| 380 @section Holidays | |
| 381 @cindex holidays | |
| 382 | |
| 383 The Emacs calendar knows about all major and many minor holidays, | |
| 384 and can display them. | |
| 385 | |
| 386 @table @kbd | |
| 387 @item h | |
| 388 Display holidays for the selected date | |
| 389 (@code{calendar-cursor-holidays}). | |
| 390 @item Mouse-2 Holidays | |
| 391 Display any holidays for the date you click on. | |
| 392 @item x | |
| 393 Mark holidays in the calendar window (@code{mark-calendar-holidays}). | |
| 394 @item u | |
| 395 Unmark calendar window (@code{calendar-unmark}). | |
| 396 @item a | |
| 397 List all holidays for the displayed three months in another window | |
| 398 (@code{list-calendar-holidays}). | |
| 399 @item M-x holidays | |
| 400 List all holidays for three months around today's date in another | |
| 401 window. | |
| 402 @item M-x list-holidays | |
| 403 List holidays in another window for a specified range of years. | |
| 404 @end table | |
| 405 | |
| 406 @kindex h @r{(Calendar mode)} | |
| 407 @findex calendar-cursor-holidays | |
| 408 To see if any holidays fall on a given date, position point on that | |
| 409 date in the calendar window and use the @kbd{h} command. Alternatively, | |
| 410 click on that date with @kbd{Mouse-2} and then choose @kbd{Holidays} | |
| 411 from the menu that appears. Either way, this displays the holidays for | |
| 412 that date, in the echo area if they fit there, otherwise in a separate | |
| 413 window. | |
| 414 | |
| 415 @kindex x @r{(Calendar mode)} | |
| 416 @findex mark-calendar-holidays | |
| 417 @kindex u @r{(Calendar mode)} | |
| 418 @findex calendar-unmark | |
| 419 To view the distribution of holidays for all the dates shown in the | |
| 420 calendar, use the @kbd{x} command. This displays the dates that are | |
| 421 holidays in a different face (or places a @samp{*} after these dates, if | |
| 422 display with multiple faces is not available). The command applies both | |
| 423 to the currently visible months and to other months that subsequently | |
| 424 become visible by scrolling. To turn marking off and erase the current | |
| 425 marks, type @kbd{u}, which also erases any diary marks (@pxref{Diary}). | |
| 426 | |
| 427 @kindex a @r{(Calendar mode)} | |
| 428 @findex list-calendar-holidays | |
| 429 To get even more detailed information, use the @kbd{a} command, which | |
| 430 displays a separate buffer containing a list of all holidays in the | |
| 431 current three-month range. You can use @key{SPC} in the calendar window | |
| 432 to scroll that list. | |
| 433 | |
| 434 @findex holidays | |
| 435 The command @kbd{M-x holidays} displays the list of holidays for the | |
| 436 current month and the preceding and succeeding months; this works even | |
| 437 if you don't have a calendar window. If you want the list of holidays | |
| 438 centered around a different month, use @kbd{C-u M-x holidays}, which | |
| 439 prompts for the month and year. | |
| 440 | |
| 441 The holidays known to Emacs include United States holidays and the | |
|
37142
e107572ba2dd
Undo last commit by John Wiegley.
Gerd Moellmann <gerd@gnu.org>
parents:
36909
diff
changeset
|
442 major Christian, Jewish, and Islamic holidays; also the solstices and |
|
e107572ba2dd
Undo last commit by John Wiegley.
Gerd Moellmann <gerd@gnu.org>
parents:
36909
diff
changeset
|
443 equinoxes. |
| 25829 | 444 |
| 445 @findex list-holidays | |
| 446 The command @kbd{M-x list-holidays} displays the list of holidays for | |
| 447 a range of years. This function asks you for the starting and stopping | |
| 448 years, and allows you to choose all the holidays or one of several | |
| 449 categories of holidays. You can use this command even if you don't have | |
| 450 a calendar window. | |
| 451 | |
| 452 The dates used by Emacs for holidays are based on @emph{current | |
| 453 practice}, not historical fact. Historically, for instance, the start | |
| 454 of daylight savings time and even its existence have varied from year to | |
| 455 year, but present United States law mandates that daylight savings time | |
| 456 begins on the first Sunday in April. When the daylight savings rules | |
| 457 are set up for the United States, Emacs always uses the present | |
| 458 definition, even though it is wrong for some prior years. | |
| 459 | |
| 460 @node Sunrise/Sunset | |
| 461 @section Times of Sunrise and Sunset | |
| 462 @cindex sunrise and sunset | |
| 463 | |
| 464 Special calendar commands can tell you, to within a minute or two, the | |
| 465 times of sunrise and sunset for any date. | |
| 466 | |
| 467 @table @kbd | |
| 468 @item S | |
| 469 Display times of sunrise and sunset for the selected date | |
| 470 (@code{calendar-sunrise-sunset}). | |
|
37709
e58e22c73805
Clarify `p' commands again.
Richard M. Stallman <rms@gnu.org>
parents:
37142
diff
changeset
|
471 @item Mouse-2 Sunrise/sunset |
| 25829 | 472 Display times of sunrise and sunset for the date you click on. |
| 473 @item M-x sunrise-sunset | |
| 474 Display times of sunrise and sunset for today's date. | |
| 475 @item C-u M-x sunrise-sunset | |
| 476 Display times of sunrise and sunset for a specified date. | |
| 477 @end table | |
| 478 | |
| 479 @kindex S @r{(Calendar mode)} | |
| 480 @findex calendar-sunrise-sunset | |
| 481 @findex sunrise-sunset | |
| 482 Within the calendar, to display the @emph{local times} of sunrise and | |
| 483 sunset in the echo area, move point to the date you want, and type | |
| 484 @kbd{S}. Alternatively, click @kbd{Mouse-2} on the date, then choose | |
|
37709
e58e22c73805
Clarify `p' commands again.
Richard M. Stallman <rms@gnu.org>
parents:
37142
diff
changeset
|
485 @samp{Sunrise/sunset} from the menu that appears. The command @kbd{M-x |
| 25829 | 486 sunrise-sunset} is available outside the calendar to display this |
| 487 information for today's date or a specified date. To specify a date | |
| 488 other than today, use @kbd{C-u M-x sunrise-sunset}, which prompts for | |
| 489 the year, month, and day. | |
| 490 | |
| 491 You can display the times of sunrise and sunset for any location and | |
| 492 any date with @kbd{C-u C-u M-x sunrise-sunset}. This asks you for a | |
| 493 longitude, latitude, number of minutes difference from Coordinated | |
| 494 Universal Time, and date, and then tells you the times of sunrise and | |
| 495 sunset for that location on that date. | |
| 496 | |
| 497 Because the times of sunrise and sunset depend on the location on | |
| 498 earth, you need to tell Emacs your latitude, longitude, and location | |
| 499 name before using these commands. Here is an example of what to set: | |
| 500 | |
| 501 @vindex calendar-location-name | |
| 502 @vindex calendar-longitude | |
| 503 @vindex calendar-latitude | |
| 504 @example | |
| 505 (setq calendar-latitude 40.1) | |
| 506 (setq calendar-longitude -88.2) | |
| 507 (setq calendar-location-name "Urbana, IL") | |
| 508 @end example | |
| 509 | |
| 510 @noindent | |
| 511 Use one decimal place in the values of @code{calendar-latitude} and | |
| 512 @code{calendar-longitude}. | |
| 513 | |
| 514 Your time zone also affects the local time of sunrise and sunset. | |
| 515 Emacs usually gets time zone information from the operating system, but | |
| 516 if these values are not what you want (or if the operating system does | |
| 517 not supply them), you must set them yourself. Here is an example: | |
| 518 | |
| 519 @vindex calendar-time-zone | |
| 520 @vindex calendar-standard-time-zone-name | |
| 521 @vindex calendar-daylight-time-zone-name | |
| 522 @example | |
| 523 (setq calendar-time-zone -360) | |
| 524 (setq calendar-standard-time-zone-name "CST") | |
| 525 (setq calendar-daylight-time-zone-name "CDT") | |
| 526 @end example | |
| 527 | |
| 528 @noindent | |
| 529 The value of @code{calendar-time-zone} is the number of minutes | |
| 530 difference between your local standard time and Coordinated Universal | |
| 531 Time (Greenwich time). The values of | |
| 532 @code{calendar-standard-time-zone-name} and | |
| 533 @code{calendar-daylight-time-zone-name} are the abbreviations used in | |
| 534 your time zone. Emacs displays the times of sunrise and sunset | |
| 535 @emph{corrected for daylight savings time}. @xref{Daylight Savings}, | |
| 536 for how daylight savings time is determined. | |
| 537 | |
| 538 As a user, you might find it convenient to set the calendar location | |
| 539 variables for your usual physical location in your @file{.emacs} file. | |
| 540 And when you install Emacs on a machine, you can create a | |
| 541 @file{default.el} file which sets them properly for the typical location | |
| 542 of most users of that machine. @xref{Init File}. | |
| 543 | |
| 544 @node Lunar Phases | |
| 545 @section Phases of the Moon | |
| 546 @cindex phases of the moon | |
| 547 @cindex moon, phases of | |
| 548 | |
| 549 These calendar commands display the dates and times of the phases of | |
| 550 the moon (new moon, first quarter, full moon, last quarter). This | |
| 551 feature is useful for debugging problems that ``depend on the phase of | |
| 552 the moon.'' | |
| 553 | |
| 554 @table @kbd | |
| 555 @item M | |
| 556 Display the dates and times for all the quarters of the moon for the | |
| 557 three-month period shown (@code{calendar-phases-of-moon}). | |
| 558 @item M-x phases-of-moon | |
| 559 Display dates and times of the quarters of the moon for three months around | |
| 560 today's date. | |
| 561 @end table | |
| 562 | |
| 563 @kindex M @r{(Calendar mode)} | |
| 564 @findex calendar-phases-of-moon | |
| 565 Within the calendar, use the @kbd{M} command to display a separate | |
| 566 buffer of the phases of the moon for the current three-month range. The | |
| 567 dates and times listed are accurate to within a few minutes. | |
| 568 | |
| 569 @findex phases-of-moon | |
| 570 Outside the calendar, use the command @kbd{M-x phases-of-moon} to | |
| 571 display the list of the phases of the moon for the current month and the | |
| 572 preceding and succeeding months. For information about a different | |
| 573 month, use @kbd{C-u M-x phases-of-moon}, which prompts for the month and | |
| 574 year. | |
| 575 | |
| 576 The dates and times given for the phases of the moon are given in | |
| 577 local time (corrected for daylight savings, when appropriate); but if | |
| 578 the variable @code{calendar-time-zone} is void, Coordinated Universal | |
| 579 Time (the Greenwich time zone) is used. @xref{Daylight Savings}. | |
| 580 | |
| 581 @node Other Calendars | |
| 582 @section Conversion To and From Other Calendars | |
| 583 | |
| 584 @cindex Gregorian calendar | |
| 585 The Emacs calendar displayed is @emph{always} the Gregorian calendar, | |
| 586 sometimes called the ``new style'' calendar, which is used in most of | |
| 587 the world today. However, this calendar did not exist before the | |
| 588 sixteenth century and was not widely used before the eighteenth century; | |
| 589 it did not fully displace the Julian calendar and gain universal | |
| 590 acceptance until the early twentieth century. The Emacs calendar can | |
| 591 display any month since January, year 1 of the current era, but the | |
| 592 calendar displayed is the Gregorian, even for a date at which the | |
| 593 Gregorian calendar did not exist. | |
| 594 | |
| 595 While Emacs cannot display other calendars, it can convert dates to | |
| 596 and from several other calendars. | |
| 597 | |
| 598 @menu | |
| 599 * Calendar Systems:: The calendars Emacs understands | |
| 600 (aside from Gregorian). | |
| 601 * To Other Calendar:: Converting the selected date to various calendars. | |
| 602 * From Other Calendar:: Moving to a date specified in another calendar. | |
| 603 * Mayan Calendar:: Moving to a date specified in a Mayan calendar. | |
| 604 @end menu | |
| 605 | |
| 606 @node Calendar Systems | |
| 607 @subsection Supported Calendar Systems | |
| 608 | |
| 609 @cindex ISO commercial calendar | |
| 610 The ISO commercial calendar is used largely in Europe. | |
| 611 | |
| 612 @cindex Julian calendar | |
| 613 The Julian calendar, named after Julius Caesar, was the one used in Europe | |
| 614 throughout medieval times, and in many countries up until the nineteenth | |
| 615 century. | |
| 616 | |
| 617 @cindex Julian day numbers | |
| 618 @cindex astronomical day numbers | |
| 619 Astronomers use a simple counting of days elapsed since noon, Monday, | |
| 620 January 1, 4713 B.C. on the Julian calendar. The number of days elapsed | |
|
36263
11db0318031d
Remove redundant index entries.
Eli Zaretskii <eliz@gnu.org>
parents:
36145
diff
changeset
|
621 is called the @dfn{Julian day number} or the @dfn{Astronomical day number}. |
| 25829 | 622 |
| 623 @cindex Hebrew calendar | |
| 624 The Hebrew calendar is used by tradition in the Jewish religion. The | |
| 625 Emacs calendar program uses the Hebrew calendar to determine the dates | |
| 626 of Jewish holidays. Hebrew calendar dates begin and end at sunset. | |
| 627 | |
| 628 @cindex Islamic calendar | |
| 629 The Islamic calendar is used in many predominantly Islamic countries. | |
| 630 Emacs uses it to determine the dates of Islamic holidays. There is no | |
| 631 universal agreement in the Islamic world about the calendar; Emacs uses | |
| 632 a widely accepted version, but the precise dates of Islamic holidays | |
| 633 often depend on proclamation by religious authorities, not on | |
| 634 calculations. As a consequence, the actual dates of observance can vary | |
| 635 slightly from the dates computed by Emacs. Islamic calendar dates begin | |
| 636 and end at sunset. | |
| 637 | |
| 638 @cindex French Revolutionary calendar | |
| 639 The French Revolutionary calendar was created by the Jacobins after the 1789 | |
| 640 revolution, to represent a more secular and nature-based view of the annual | |
| 641 cycle, and to install a 10-day week in a rationalization measure similar to | |
| 642 the metric system. The French government officially abandoned this | |
| 643 calendar at the end of 1805. | |
| 644 | |
| 645 @cindex Mayan calendar | |
| 646 The Maya of Central America used three separate, overlapping calendar | |
| 647 systems, the @emph{long count}, the @emph{tzolkin}, and the @emph{haab}. | |
| 648 Emacs knows about all three of these calendars. Experts dispute the | |
| 649 exact correlation between the Mayan calendar and our calendar; Emacs uses the | |
| 650 Goodman-Martinez-Thompson correlation in its calculations. | |
| 651 | |
| 652 @cindex Coptic calendar | |
| 653 @cindex Ethiopic calendar | |
| 654 The Copts use a calendar based on the ancient Egyptian solar calendar. | |
| 655 Their calendar consists of twelve 30-day months followed by an extra | |
| 656 five-day period. Once every fourth year they add a leap day to this | |
| 657 extra period to make it six days. The Ethiopic calendar is identical in | |
| 658 structure, but has different year numbers and month names. | |
| 659 | |
| 660 @cindex Persian calendar | |
| 661 The Persians use a solar calendar based on a design of Omar Khayyam. | |
| 662 Their calendar consists of twelve months of which the first six have 31 | |
| 663 days, the next five have 30 days, and the last has 29 in ordinary years | |
| 664 and 30 in leap years. Leap years occur in a complicated pattern every | |
| 665 four or five years. | |
| 666 | |
| 667 @cindex Chinese calendar | |
| 668 The Chinese calendar is a complicated system of lunar months arranged | |
| 669 into solar years. The years go in cycles of sixty, each year containing | |
| 670 either twelve months in an ordinary year or thirteen months in a leap | |
| 671 year; each month has either 29 or 30 days. Years, ordinary months, and | |
| 672 days are named by combining one of ten ``celestial stems'' with one of | |
| 673 twelve ``terrestrial branches'' for a total of sixty names that are | |
| 674 repeated in a cycle of sixty. | |
| 675 | |
| 676 @node To Other Calendar | |
| 677 @subsection Converting To Other Calendars | |
| 678 | |
| 679 The following commands describe the selected date (the date at point) | |
| 680 in various other calendar systems: | |
| 681 | |
| 682 @table @kbd | |
|
37709
e58e22c73805
Clarify `p' commands again.
Richard M. Stallman <rms@gnu.org>
parents:
37142
diff
changeset
|
683 @item Mouse-2 Other calendars |
| 25829 | 684 Display the date that you click on, expressed in various other calendars. |
| 685 @kindex p @r{(Calendar mode)} | |
| 686 @findex calendar-print-iso-date | |
| 687 @item p c | |
| 688 Display ISO commercial calendar equivalent for selected day | |
| 689 (@code{calendar-print-iso-date}). | |
| 690 @findex calendar-print-julian-date | |
| 691 @item p j | |
| 692 Display Julian date for selected day (@code{calendar-print-julian-date}). | |
| 693 @findex calendar-print-astro-day-number | |
| 694 @item p a | |
| 695 Display astronomical (Julian) day number for selected day | |
| 696 (@code{calendar-print-astro-day-number}). | |
| 697 @findex calendar-print-hebrew-date | |
| 698 @item p h | |
| 699 Display Hebrew date for selected day (@code{calendar-print-hebrew-date}). | |
| 700 @findex calendar-print-islamic-date | |
| 701 @item p i | |
| 702 Display Islamic date for selected day (@code{calendar-print-islamic-date}). | |
| 703 @findex calendar-print-french-date | |
| 704 @item p f | |
| 705 Display French Revolutionary date for selected day | |
| 706 (@code{calendar-print-french-date}). | |
| 707 @findex calendar-print-chinese-date | |
| 708 @item p C | |
| 709 Display Chinese date for selected day | |
| 710 (@code{calendar-print-chinese-date}). | |
| 711 @findex calendar-print-coptic-date | |
| 712 @item p k | |
| 713 Display Coptic date for selected day | |
| 714 (@code{calendar-print-coptic-date}). | |
| 715 @findex calendar-print-ethiopic-date | |
| 716 @item p e | |
| 717 Display Ethiopic date for selected day | |
| 718 (@code{calendar-print-ethiopic-date}). | |
| 719 @findex calendar-print-persian-date | |
| 720 @item p p | |
| 721 Display Persian date for selected day | |
| 722 (@code{calendar-print-persian-date}). | |
| 723 @findex calendar-print-mayan-date | |
| 724 @item p m | |
| 725 Display Mayan date for selected day (@code{calendar-print-mayan-date}). | |
| 726 @end table | |
| 727 | |
| 728 If you are using X, the easiest way to translate a date into other | |
| 729 calendars is to click on it with @kbd{Mouse-2}, then choose @kbd{Other | |
|
37709
e58e22c73805
Clarify `p' commands again.
Richard M. Stallman <rms@gnu.org>
parents:
37142
diff
changeset
|
730 calendars} from the menu that appears. This displays the equivalent |
| 25829 | 731 forms of the date in all the calendars Emacs understands, in the form of |
| 732 a menu. (Choosing an alternative from this menu doesn't actually do | |
| 733 anything---the menu is used only for display.) | |
| 734 | |
|
37709
e58e22c73805
Clarify `p' commands again.
Richard M. Stallman <rms@gnu.org>
parents:
37142
diff
changeset
|
735 Otherwise, move point to the date you want to convert, then type the |
|
e58e22c73805
Clarify `p' commands again.
Richard M. Stallman <rms@gnu.org>
parents:
37142
diff
changeset
|
736 appropriate command starting with @kbd{p} from the table above. The |
|
e58e22c73805
Clarify `p' commands again.
Richard M. Stallman <rms@gnu.org>
parents:
37142
diff
changeset
|
737 prefix @kbd{p} is a mnemonic for ``print,'' since Emacs ``prints'' the |
|
e58e22c73805
Clarify `p' commands again.
Richard M. Stallman <rms@gnu.org>
parents:
37142
diff
changeset
|
738 equivalent date in the echo area. |
| 25829 | 739 |
| 740 @node From Other Calendar | |
| 741 @subsection Converting From Other Calendars | |
| 742 | |
| 743 You can use the other supported calendars to specify a date to move | |
| 744 to. This section describes the commands for doing this using calendars | |
| 745 other than Mayan; for the Mayan calendar, see the following section. | |
| 746 | |
| 747 @kindex g @var{char} @r{(Calendar mode)} | |
| 748 @findex calendar-goto-iso-date | |
| 749 @findex calendar-goto-julian-date | |
| 750 @findex calendar-goto-astro-day-number | |
| 751 @findex calendar-goto-hebrew-date | |
| 752 @findex calendar-goto-islamic-date | |
| 753 @findex calendar-goto-french-date | |
| 754 @findex calendar-goto-chinese-date | |
| 755 @findex calendar-goto-persian-date | |
| 756 @findex calendar-goto-coptic-date | |
| 757 @findex calendar-goto-ethiopic-date | |
| 758 @table @kbd | |
| 759 @item g c | |
| 760 Move to a date specified in the ISO commercial calendar | |
| 761 (@code{calendar-goto-iso-date}). | |
| 762 @item g j | |
| 763 Move to a date specified in the Julian calendar | |
| 764 (@code{calendar-goto-julian-date}). | |
| 765 @item g a | |
| 38156 | 766 Move to a date specified with an astronomical (Julian) day number |
| 25829 | 767 (@code{calendar-goto-astro-day-number}). |
| 768 @item g h | |
| 769 Move to a date specified in the Hebrew calendar | |
| 770 (@code{calendar-goto-hebrew-date}). | |
| 771 @item g i | |
| 772 Move to a date specified in the Islamic calendar | |
| 773 (@code{calendar-goto-islamic-date}). | |
| 774 @item g f | |
| 775 Move to a date specified in the French Revolutionary calendar | |
| 776 (@code{calendar-goto-french-date}). | |
| 777 @item g C | |
| 778 Move to a date specified in the Chinese calendar | |
| 779 (@code{calendar-goto-chinese-date}). | |
| 780 @item g p | |
| 781 Move to a date specified in the Persian calendar | |
| 782 (@code{calendar-goto-persian-date}). | |
| 783 @item g k | |
| 784 Move to a date specified in the Coptic calendar | |
| 785 (@code{calendar-goto-coptic-date}). | |
| 786 @item g e | |
| 787 Move to a date specified in the Ethiopic calendar | |
| 788 (@code{calendar-goto-ethiopic-date}). | |
| 789 @end table | |
| 790 | |
| 791 These commands ask you for a date on the other calendar, move point to | |
| 792 the Gregorian calendar date equivalent to that date, and display the | |
| 793 other calendar's date in the echo area. Emacs uses strict completion | |
| 794 (@pxref{Completion}) whenever it asks you to type a month name, so you | |
|
37142
e107572ba2dd
Undo last commit by John Wiegley.
Gerd Moellmann <gerd@gnu.org>
parents:
36909
diff
changeset
|
795 don't have to worry about the spelling of Hebrew, Islamic, or French names. |
| 25829 | 796 |
| 797 @findex list-yahrzeit-dates | |
| 798 @cindex yahrzeits | |
| 799 One common question concerning the Hebrew calendar is the computation | |
| 800 of the anniversary of a date of death, called a ``yahrzeit.'' The Emacs | |
| 801 calendar includes a facility for such calculations. If you are in the | |
| 802 calendar, the command @kbd{M-x list-yahrzeit-dates} asks you for a | |
| 803 range of years and then displays a list of the yahrzeit dates for those | |
| 804 years for the date given by point. If you are not in the calendar, | |
| 805 this command first asks you for the date of death and the range of | |
| 806 years, and then displays the list of yahrzeit dates. | |
| 807 | |
| 808 @node Mayan Calendar | |
| 809 @subsection Converting from the Mayan Calendar | |
| 810 | |
| 811 Here are the commands to select dates based on the Mayan calendar: | |
| 812 | |
| 813 @table @kbd | |
| 814 @item g m l | |
| 815 Move to a date specified by the long count calendar | |
| 816 (@code{calendar-goto-mayan-long-count-date}). | |
| 817 @item g m n t | |
| 818 Move to the next occurrence of a place in the | |
| 819 tzolkin calendar (@code{calendar-next-tzolkin-date}). | |
| 820 @item g m p t | |
| 821 Move to the previous occurrence of a place in the | |
| 822 tzolkin calendar (@code{calendar-previous-tzolkin-date}). | |
| 823 @item g m n h | |
| 824 Move to the next occurrence of a place in the | |
| 825 haab calendar (@code{calendar-next-haab-date}). | |
| 826 @item g m p h | |
| 827 Move to the previous occurrence of a place in the | |
| 828 haab calendar (@code{calendar-previous-haab-date}). | |
| 829 @item g m n c | |
| 830 Move to the next occurrence of a place in the | |
| 831 calendar round (@code{calendar-next-calendar-round-date}). | |
| 832 @item g m p c | |
| 833 Move to the previous occurrence of a place in the | |
| 834 calendar round (@code{calendar-previous-calendar-round-date}). | |
| 835 @end table | |
| 836 | |
| 837 @cindex Mayan long count | |
| 838 To understand these commands, you need to understand the Mayan calendars. | |
| 839 The @dfn{long count} is a counting of days with these units: | |
| 840 | |
| 841 @display | |
| 842 1 kin = 1 day@ @ @ 1 uinal = 20 kin@ @ @ 1 tun = 18 uinal | |
| 843 1 katun = 20 tun@ @ @ 1 baktun = 20 katun | |
| 844 @end display | |
| 845 | |
| 846 @kindex g m @r{(Calendar mode)} | |
| 847 @findex calendar-goto-mayan-long-count-date | |
| 848 @noindent | |
| 849 Thus, the long count date 12.16.11.16.6 means 12 baktun, 16 katun, 11 | |
| 850 tun, 16 uinal, and 6 kin. The Emacs calendar can handle Mayan long | |
| 851 count dates as early as 7.17.18.13.1, but no earlier. When you use the | |
| 852 @kbd{g m l} command, type the Mayan long count date with the baktun, | |
| 853 katun, tun, uinal, and kin separated by periods. | |
| 854 | |
| 855 @findex calendar-previous-tzolkin-date | |
| 856 @findex calendar-next-tzolkin-date | |
| 857 @cindex Mayan tzolkin calendar | |
| 858 The Mayan tzolkin calendar is a cycle of 260 days formed by a pair of | |
| 859 independent cycles of 13 and 20 days. Since this cycle repeats | |
| 860 endlessly, Emacs provides commands to move backward and forward to the | |
| 861 previous or next point in the cycle. Type @kbd{g m p t} to go to the | |
| 862 previous tzolkin date; Emacs asks you for a tzolkin date and moves point | |
| 863 to the previous occurrence of that date. Similarly, type @kbd{g m n t} | |
| 864 to go to the next occurrence of a tzolkin date. | |
| 865 | |
| 866 @findex calendar-previous-haab-date | |
| 867 @findex calendar-next-haab-date | |
| 868 @cindex Mayan haab calendar | |
| 869 The Mayan haab calendar is a cycle of 365 days arranged as 18 months | |
| 870 of 20 days each, followed a 5-day monthless period. Like the tzolkin | |
| 871 cycle, this cycle repeats endlessly, and there are commands to move | |
| 872 backward and forward to the previous or next point in the cycle. Type | |
| 873 @kbd{g m p h} to go to the previous haab date; Emacs asks you for a haab | |
| 874 date and moves point to the previous occurrence of that date. | |
| 875 Similarly, type @kbd{g m n h} to go to the next occurrence of a haab | |
| 876 date. | |
| 877 | |
| 878 @c This is omitted because it is too long for smallbook format. | |
| 879 @c @findex calendar-previous-calendar-round-date | |
| 880 @findex calendar-next-calendar-round-date | |
| 881 @cindex Mayan calendar round | |
| 882 The Maya also used the combination of the tzolkin date and the haab | |
| 883 date. This combination is a cycle of about 52 years called a | |
| 884 @emph{calendar round}. If you type @kbd{g m p c}, Emacs asks you for | |
| 885 both a haab and a tzolkin date and then moves point to the previous | |
| 886 occurrence of that combination. Use @kbd{g m n c} to move point to the | |
| 887 next occurrence of a combination. These commands signal an error if the | |
| 888 haab/tzolkin date combination you have typed is impossible. | |
| 889 | |
| 890 Emacs uses strict completion (@pxref{Strict Completion}) whenever it | |
| 891 asks you to type a Mayan name, so you don't have to worry about | |
| 892 spelling. | |
| 893 | |
| 894 @node Diary | |
| 895 @section The Diary | |
| 896 @cindex diary | |
| 897 | |
| 898 The Emacs diary keeps track of appointments or other events on a daily | |
| 899 basis, in conjunction with the calendar. To use the diary feature, you | |
| 900 must first create a @dfn{diary file} containing a list of events and | |
| 901 their dates. Then Emacs can automatically pick out and display the | |
| 902 events for today, for the immediate future, or for any specified | |
| 903 date. | |
| 904 | |
| 905 By default, Emacs uses @file{~/diary} as the diary file. This is the | |
| 906 same file that the @code{calendar} utility uses. A sample | |
| 907 @file{~/diary} file is: | |
| 908 | |
| 909 @example | |
| 910 12/22/1988 Twentieth wedding anniversary!! | |
| 911 &1/1. Happy New Year! | |
| 912 10/22 Ruth's birthday. | |
| 913 * 21, *: Payday | |
| 914 Tuesday--weekly meeting with grad students at 10am | |
| 915 Supowit, Shen, Bitner, and Kapoor to attend. | |
| 916 1/13/89 Friday the thirteenth!! | |
| 917 &thu 4pm squash game with Lloyd. | |
| 918 mar 16 Dad's birthday | |
| 919 April 15, 1989 Income tax due. | |
| 920 &* 15 time cards due. | |
| 921 @end example | |
| 922 | |
| 923 @noindent | |
| 924 This example uses extra spaces to align the event descriptions of most | |
| 925 of the entries. Such formatting is purely a matter of taste. | |
| 926 | |
| 927 Although you probably will start by creating a diary manually, Emacs | |
| 928 provides a number of commands to let you view, add, and change diary | |
| 929 entries. | |
| 930 | |
| 931 @menu | |
| 932 * Diary Commands:: Viewing diary entries and associated calendar dates. | |
| 933 * Format of Diary File:: Entering events in your diary. | |
| 934 * Date Formats:: Various ways you can specify dates. | |
| 935 * Adding to Diary:: Commands to create diary entries. | |
| 936 * Special Diary Entries:: Anniversaries, blocks of dates, cyclic entries, etc. | |
| 937 @end menu | |
| 938 | |
| 939 @node Diary Commands | |
| 940 @subsection Commands Displaying Diary Entries | |
| 941 | |
| 942 Once you have created a @file{~/diary} file, you can use the calendar | |
| 943 to view it. You can also view today's events outside of Calendar mode. | |
| 944 | |
| 945 @table @kbd | |
| 946 @item d | |
| 947 Display all diary entries for the selected date | |
| 948 (@code{view-diary-entries}). | |
| 949 @item Mouse-2 Diary | |
| 950 Display all diary entries for the date you click on. | |
| 951 @item s | |
| 952 Display the entire diary file (@code{show-all-diary-entries}). | |
| 953 @item m | |
| 954 Mark all visible dates that have diary entries | |
| 955 (@code{mark-diary-entries}). | |
| 956 @item u | |
| 957 Unmark the calendar window (@code{calendar-unmark}). | |
| 958 @item M-x print-diary-entries | |
| 959 Print hard copy of the diary display as it appears. | |
| 960 @item M-x diary | |
| 961 Display all diary entries for today's date. | |
| 962 @item M-x diary-mail-entries | |
| 963 Mail yourself email reminders about upcoming diary entries. | |
| 964 @end table | |
| 965 | |
| 966 @kindex d @r{(Calendar mode)} | |
| 967 @findex view-diary-entries | |
| 968 Displaying the diary entries with @kbd{d} shows in a separate window | |
| 969 the diary entries for the selected date in the calendar. The mode line | |
| 970 of the new window shows the date of the diary entries and any holidays | |
| 971 that fall on that date. If you specify a numeric argument with @kbd{d}, | |
| 972 it shows all the diary entries for that many successive days. Thus, | |
| 973 @kbd{2 d} displays all the entries for the selected date and for the | |
| 974 following day. | |
| 975 | |
| 976 Another way to display the diary entries for a date is to click | |
|
37709
e58e22c73805
Clarify `p' commands again.
Richard M. Stallman <rms@gnu.org>
parents:
37142
diff
changeset
|
977 @kbd{Mouse-2} on the date, and then choose @kbd{Diary entries} from |
|
e58e22c73805
Clarify `p' commands again.
Richard M. Stallman <rms@gnu.org>
parents:
37142
diff
changeset
|
978 the menu that appears. |
| 25829 | 979 |
| 980 @kindex m @r{(Calendar mode)} | |
| 981 @findex mark-diary-entries | |
| 982 To get a broader view of which days are mentioned in the diary, use | |
| 983 the @kbd{m} command. This displays the dates that have diary entries | |
| 984 in a different face (or places a @samp{+} after these dates, if | |
| 985 display with multiple faces is not available). The command applies both | |
| 986 to the currently visible months and to other months that subsequently | |
| 987 become visible by scrolling. To turn marking off and erase the current | |
| 988 marks, type @kbd{u}, which also turns off holiday marks | |
| 989 (@pxref{Holidays}). | |
| 990 | |
| 991 @kindex s @r{(Calendar mode)} | |
| 992 @findex show-all-diary-entries | |
| 993 To see the full diary file, rather than just some of the entries, use | |
| 994 the @kbd{s} command. | |
| 995 | |
| 996 Display of selected diary entries uses the selective display feature | |
| 997 to hide entries that don't apply. | |
| 998 | |
| 999 The diary buffer as you see it is an illusion, so simply printing the | |
| 1000 buffer does not print what you see on your screen. There is a special | |
| 1001 command to print hard copy of the diary buffer @emph{as it appears}; | |
| 1002 this command is @kbd{M-x print-diary-entries}. It sends the data | |
| 1003 directly to the printer. You can customize it like @code{lpr-region} | |
| 1004 (@pxref{Hardcopy}). | |
| 1005 | |
| 1006 @findex diary | |
| 1007 The command @kbd{M-x diary} displays the diary entries for the current | |
| 1008 date, independently of the calendar display, and optionally for the next | |
| 1009 few days as well; the variable @code{number-of-diary-entries} specifies | |
| 1010 how many days to include. @xref{Calendar, Customizing the Calendar | |
| 1011 and Diary,, elisp, The Emacs Lisp Reference Manual}. | |
| 1012 | |
| 1013 If you put @code{(diary)} in your @file{.emacs} file, this | |
| 1014 automatically displays a window with the day's diary entries, when you | |
| 1015 enter Emacs. The mode line of the displayed window shows the date and | |
| 1016 any holidays that fall on that date. | |
| 1017 | |
| 1018 @findex diary-mail-entries | |
| 1019 @vindex diary-mail-days | |
| 1020 Many users like to receive notice of events in their diary as email. | |
| 1021 To send such mail to yourself, use the command @kbd{M-x | |
| 1022 diary-mail-entries}. A prefix argument specifies how many days | |
| 1023 (starting with today) to check; otherwise, the variable | |
| 1024 @code{diary-mail-days} says how many days. | |
| 1025 | |
| 1026 @node Format of Diary File | |
| 1027 @subsection The Diary File | |
| 1028 @cindex diary file | |
| 1029 | |
| 1030 @vindex diary-file | |
| 1031 Your @dfn{diary file} is a file that records events associated with | |
| 1032 particular dates. The name of the diary file is specified by the | |
| 1033 variable @code{diary-file}; @file{~/diary} is the default. The | |
| 1034 @code{calendar} utility program supports a subset of the format allowed | |
| 1035 by the Emacs diary facilities, so you can use that utility to view the | |
| 1036 diary file, with reasonable results aside from the entries it cannot | |
| 1037 understand. | |
| 1038 | |
| 1039 Each entry in the diary file describes one event and consists of one | |
| 1040 or more lines. An entry always begins with a date specification at the | |
| 1041 left margin. The rest of the entry is simply text to describe the | |
| 1042 event. If the entry has more than one line, then the lines after the | |
| 1043 first must begin with whitespace to indicate they continue a previous | |
| 1044 entry. Lines that do not begin with valid dates and do not continue a | |
| 1045 preceding entry are ignored. | |
| 1046 | |
| 1047 You can inhibit the marking of certain diary entries in the calendar | |
| 1048 window; to do this, insert an ampersand (@samp{&}) at the beginning of | |
| 1049 the entry, before the date. This has no effect on display of the entry | |
| 1050 in the diary window; it affects only marks on dates in the calendar | |
| 1051 window. Nonmarking entries are especially useful for generic entries | |
| 1052 that would otherwise mark many different dates. | |
| 1053 | |
| 1054 If the first line of a diary entry consists only of the date or day | |
| 1055 name with no following blanks or punctuation, then the diary window | |
| 1056 display doesn't include that line; only the continuation lines appear. | |
| 1057 For example, this entry: | |
| 1058 | |
| 1059 @example | |
| 1060 02/11/1989 | |
| 1061 Bill B. visits Princeton today | |
| 1062 2pm Cognitive Studies Committee meeting | |
| 1063 2:30-5:30 Liz at Lawrenceville | |
| 1064 4:00pm Dentist appt | |
| 1065 7:30pm Dinner at George's | |
| 1066 8:00-10:00pm concert | |
| 1067 @end example | |
| 1068 | |
| 1069 @noindent | |
| 1070 appears in the diary window without the date line at the beginning. | |
| 1071 This style of entry looks neater when you display just a single day's | |
| 1072 entries, but can cause confusion if you ask for more than one day's | |
| 1073 entries. | |
| 1074 | |
| 1075 You can edit the diary entries as they appear in the window, but it is | |
| 1076 important to remember that the buffer displayed contains the @emph{entire} | |
| 1077 diary file, with portions of it concealed from view. This means, for | |
| 1078 instance, that the @kbd{C-f} (@code{forward-char}) command can put point | |
| 1079 at what appears to be the end of the line, but what is in reality the | |
| 1080 middle of some concealed line. | |
| 1081 | |
| 1082 @emph{Be careful when editing the diary entries!} Inserting | |
| 1083 additional lines or adding/deleting characters in the middle of a | |
| 1084 visible line cannot cause problems, but editing at the end of a line may | |
| 1085 not do what you expect. Deleting a line may delete other invisible | |
| 1086 entries that follow it. Before editing the diary, it is best to display | |
| 1087 the entire file with @kbd{s} (@code{show-all-diary-entries}). | |
| 1088 | |
| 1089 @node Date Formats | |
| 1090 @subsection Date Formats | |
| 1091 | |
| 1092 Here are some sample diary entries, illustrating different ways of | |
| 1093 formatting a date. The examples all show dates in American order | |
| 1094 (month, day, year), but Calendar mode supports European order (day, | |
| 1095 month, year) as an option. | |
| 1096 | |
| 1097 @example | |
| 1098 4/20/93 Switch-over to new tabulation system | |
| 1099 apr. 25 Start tabulating annual results | |
| 1100 4/30 Results for April are due | |
| 1101 */25 Monthly cycle finishes | |
| 1102 Friday Don't leave without backing up files | |
| 1103 @end example | |
| 1104 | |
| 1105 The first entry appears only once, on April 20, 1993. The second and | |
| 1106 third appear every year on the specified dates, and the fourth uses a | |
| 1107 wildcard (asterisk) for the month, so it appears on the 25th of every | |
| 1108 month. The final entry appears every week on Friday. | |
| 1109 | |
| 1110 You can use just numbers to express a date, as in | |
| 1111 @samp{@var{month}/@var{day}} or @samp{@var{month}/@var{day}/@var{year}}. | |
| 1112 This must be followed by a nondigit. In the date itself, @var{month} | |
| 1113 and @var{day} are numbers of one or two digits. The optional @var{year} | |
| 1114 is also a number, and may be abbreviated to the last two digits; that | |
| 1115 is, you can use @samp{11/12/1989} or @samp{11/12/89}. | |
| 1116 | |
| 1117 Dates can also have the form @samp{@var{monthname} @var{day}} or | |
| 1118 @samp{@var{monthname} @var{day}, @var{year}}, where the month's name can | |
| 1119 be spelled in full or abbreviated to three characters (with or without a | |
| 1120 period). Case is not significant. | |
| 1121 | |
| 1122 A date may be @dfn{generic}; that is, partially unspecified. Then the | |
| 1123 entry applies to all dates that match the specification. If the date | |
| 1124 does not contain a year, it is generic and applies to any year. | |
| 1125 Alternatively, @var{month}, @var{day}, or @var{year} can be a @samp{*}; | |
| 1126 this matches any month, day, or year, respectively. Thus, a diary entry | |
| 1127 @samp{3/*/*} matches any day in March of any year; so does @samp{march | |
| 1128 *}. | |
| 1129 | |
| 1130 @vindex european-calendar-style | |
| 1131 @findex european-calendar | |
| 1132 @findex american-calendar | |
| 1133 If you prefer the European style of writing dates---in which the day | |
| 1134 comes before the month---type @kbd{M-x european-calendar} while in the | |
| 1135 calendar, or set the variable @code{european-calendar-style} to @code{t} | |
| 1136 @emph{before} using any calendar or diary command. This mode interprets | |
| 1137 all dates in the diary in the European manner, and also uses European | |
| 1138 style for displaying diary dates. (Note that there is no comma after | |
| 1139 the @var{monthname} in the European style.) To go back to the (default) | |
| 1140 American style of writing dates, type @kbd{M-x american-calendar}. | |
| 1141 | |
| 1142 You can use the name of a day of the week as a generic date which | |
| 1143 applies to any date falling on that day of the week. You can abbreviate | |
| 1144 the day of the week to three letters (with or without a period) or spell | |
| 1145 it in full; case is not significant. | |
| 1146 | |
| 1147 @node Adding to Diary | |
| 1148 @subsection Commands to Add to the Diary | |
| 1149 | |
| 1150 While in the calendar, there are several commands to create diary | |
| 1151 entries: | |
| 1152 | |
| 1153 @table @kbd | |
| 1154 @item i d | |
| 1155 Add a diary entry for the selected date (@code{insert-diary-entry}). | |
| 1156 @item i w | |
| 1157 Add a diary entry for the selected day of the week (@code{insert-weekly-diary-entry}). | |
| 1158 @item i m | |
| 1159 Add a diary entry for the selected day of the month (@code{insert-monthly-diary-entry}). | |
| 1160 @item i y | |
| 1161 Add a diary entry for the selected day of the year (@code{insert-yearly-diary-entry}). | |
| 1162 @end table | |
| 1163 | |
| 1164 @kindex i d @r{(Calendar mode)} | |
| 1165 @findex insert-diary-entry | |
| 1166 You can make a diary entry for a specific date by selecting that date | |
| 1167 in the calendar window and typing the @kbd{i d} command. This command | |
| 1168 displays the end of your diary file in another window and inserts the | |
| 1169 date; you can then type the rest of the diary entry. | |
| 1170 | |
| 1171 @kindex i w @r{(Calendar mode)} | |
| 1172 @findex insert-weekly-diary-entry | |
| 1173 @kindex i m @r{(Calendar mode)} | |
| 1174 @findex insert-monthly-diary-entry | |
| 1175 @kindex i y @r{(Calendar mode)} | |
| 1176 @findex insert-yearly-diary-entry | |
| 1177 If you want to make a diary entry that applies to a specific day of | |
| 1178 the week, select that day of the week (any occurrence will do) and type | |
| 1179 @kbd{i w}. This inserts the day-of-week as a generic date; you can then | |
| 1180 type the rest of the diary entry. You can make a monthly diary entry in | |
|
38125
8bca08a060e8
Proofreading changes from Tim Goodwin <tjg@star.le.ac.uk>.
Eli Zaretskii <eliz@gnu.org>
parents:
37709
diff
changeset
|
1181 the same fashion: select the day of the month, use the @kbd{i m} |
|
8bca08a060e8
Proofreading changes from Tim Goodwin <tjg@star.le.ac.uk>.
Eli Zaretskii <eliz@gnu.org>
parents:
37709
diff
changeset
|
1182 command, and type the rest of the entry. Similarly, you can insert a |
|
8bca08a060e8
Proofreading changes from Tim Goodwin <tjg@star.le.ac.uk>.
Eli Zaretskii <eliz@gnu.org>
parents:
37709
diff
changeset
|
1183 yearly diary entry with the @kbd{i y} command. |
| 25829 | 1184 |
| 1185 All of the above commands make marking diary entries by default. To | |
| 1186 make a nonmarking diary entry, give a numeric argument to the command. | |
| 1187 For example, @kbd{C-u i w} makes a nonmarking weekly diary entry. | |
| 1188 | |
| 1189 When you modify the diary file, be sure to save the file before | |
| 1190 exiting Emacs. | |
| 1191 | |
| 1192 @node Special Diary Entries | |
| 1193 @subsection Special Diary Entries | |
| 1194 | |
| 1195 In addition to entries based on calendar dates, the diary file can | |
| 1196 contain @dfn{sexp entries} for regular events such as anniversaries. | |
| 1197 These entries are based on Lisp expressions (sexps) that Emacs evaluates | |
| 1198 as it scans the diary file. Instead of a date, a sexp entry contains | |
| 1199 @samp{%%} followed by a Lisp expression which must begin and end with | |
| 1200 parentheses. The Lisp expression determines which dates the entry | |
| 1201 applies to. | |
| 1202 | |
| 1203 Calendar mode provides commands to insert certain commonly used | |
| 1204 sexp entries: | |
| 1205 | |
| 1206 @table @kbd | |
| 1207 @item i a | |
| 1208 Add an anniversary diary entry for the selected date | |
| 1209 (@code{insert-anniversary-diary-entry}). | |
| 1210 @item i b | |
| 1211 Add a block diary entry for the current region | |
| 1212 (@code{insert-block-diary-entry}). | |
| 1213 @item i c | |
| 1214 Add a cyclic diary entry starting at the date | |
| 1215 (@code{insert-cyclic-diary-entry}). | |
| 1216 @end table | |
| 1217 | |
| 1218 @kindex i a @r{(Calendar mode)} | |
| 1219 @findex insert-anniversary-diary-entry | |
| 1220 If you want to make a diary entry that applies to the anniversary of a | |
| 1221 specific date, move point to that date and use the @kbd{i a} command. | |
| 1222 This displays the end of your diary file in another window and inserts | |
| 1223 the anniversary description; you can then type the rest of the diary | |
| 1224 entry. The entry looks like this: | |
| 1225 | |
| 1226 @findex diary-anniversary | |
| 1227 @example | |
| 1228 %%(diary-anniversary 10 31 1948) Arthur's birthday | |
| 1229 @end example | |
| 1230 | |
| 1231 @noindent | |
| 1232 This entry applies to October 31 in any year after 1948; @samp{10 31 | |
| 1233 1948} specifies the date. (If you are using the European calendar | |
| 1234 style, the month and day are interchanged.) The reason this expression | |
| 1235 requires a beginning year is that advanced diary functions can use it to | |
| 1236 calculate the number of elapsed years. | |
| 1237 | |
| 1238 A @dfn{block} diary entry applies to a specified range of consecutive | |
| 1239 dates. Here is a block diary entry that applies to all dates from June | |
| 1240 24, 1990 through July 10, 1990: | |
| 1241 | |
| 1242 @findex diary-block | |
| 1243 @example | |
| 1244 %%(diary-block 6 24 1990 7 10 1990) Vacation | |
| 1245 @end example | |
| 1246 | |
| 1247 @noindent | |
| 1248 The @samp{6 24 1990} indicates the starting date and the @samp{7 10 1990} | |
| 1249 indicates the stopping date. (Again, if you are using the European calendar | |
| 1250 style, the month and day are interchanged.) | |
| 1251 | |
| 1252 @kindex i b @r{(Calendar mode)} | |
| 1253 @findex insert-block-diary-entry | |
| 1254 To insert a block entry, place point and the mark on the two | |
| 1255 dates that begin and end the range, and type @kbd{i b}. This command | |
| 1256 displays the end of your diary file in another window and inserts the | |
| 1257 block description; you can then type the diary entry. | |
| 1258 | |
| 1259 @kindex i c @r{(Calendar mode)} | |
| 1260 @findex insert-cyclic-diary-entry | |
| 1261 @dfn{Cyclic} diary entries repeat after a fixed interval of days. To | |
| 1262 create one, select the starting date and use the @kbd{i c} command. The | |
| 1263 command prompts for the length of interval, then inserts the entry, | |
| 1264 which looks like this: | |
| 1265 | |
| 1266 @findex diary-cyclic | |
| 1267 @example | |
| 1268 %%(diary-cyclic 50 3 1 1990) Renew medication | |
| 1269 @end example | |
| 1270 | |
| 1271 @noindent | |
| 1272 This entry applies to March 1, 1990 and every 50th day following; | |
| 1273 @samp{3 1 1990} specifies the starting date. (If you are using the | |
| 1274 European calendar style, the month and day are interchanged.) | |
| 1275 | |
| 1276 All three of these commands make marking diary entries. To insert a | |
| 1277 nonmarking entry, give a numeric argument to the command. For example, | |
| 1278 @kbd{C-u i a} makes a nonmarking anniversary diary entry. | |
| 1279 | |
| 1280 Marking sexp diary entries in the calendar is @emph{extremely} | |
| 1281 time-consuming, since every date visible in the calendar window must be | |
| 1282 individually checked. So it's a good idea to make sexp diary entries | |
| 1283 nonmarking (with @samp{&}) when possible. | |
| 1284 | |
| 1285 Another sophisticated kind of sexp entry, a @dfn{floating} diary entry, | |
| 1286 specifies a regularly occurring event by offsets specified in days, | |
| 1287 weeks, and months. It is comparable to a crontab entry interpreted by | |
| 1288 the @code{cron} utility. Here is a nonmarking, floating diary entry | |
| 1289 that applies to the last Thursday in November: | |
| 1290 | |
| 1291 @findex diary-float | |
| 1292 @example | |
| 1293 &%%(diary-float 11 4 -1) American Thanksgiving | |
| 1294 @end example | |
| 1295 | |
| 1296 @noindent | |
| 1297 The 11 specifies November (the eleventh month), the 4 specifies Thursday | |
| 1298 (the fourth day of the week, where Sunday is numbered zero), and the | |
| 1299 @minus{}1 specifies ``last'' (1 would mean ``first,'' 2 would mean | |
| 1300 ``second,'' @minus{}2 would mean ``second-to-last,'' and so on). The | |
| 1301 month can be a single month or a list of months. Thus you could change | |
| 1302 the 11 above to @samp{'(1 2 3)} and have the entry apply to the last | |
| 1303 Thursday of January, February, and March. If the month is @code{t}, the | |
| 1304 entry applies to all months of the year.@refill | |
| 1305 | |
| 1306 Most generally, sexp diary entries can perform arbitrary | |
| 1307 computations to determine when they apply. @xref{Sexp Diary Entries,, | |
| 1308 Sexp Diary Entries, elisp, The Emacs Lisp Reference Manual}. | |
| 1309 | |
| 1310 @node Appointments | |
| 1311 @section Appointments | |
| 1312 @cindex appointment notification | |
| 1313 | |
| 1314 If you have a diary entry for an appointment, and that diary entry | |
| 38745 | 1315 begins with a recognizable time of day, Emacs can warn you several |
| 1316 minutes beforehand that that appointment is pending. Emacs alerts you | |
| 25829 | 1317 to the appointment by displaying a message in the mode line. |
| 1318 | |
| 1319 @vindex diary-hook | |
| 1320 @findex appt-make-list | |
| 1321 To enable appointment notification, you must enable the time display | |
| 1322 feature of Emacs, @kbd{M-x display-time} (@pxref{Mode Line}). You must | |
| 1323 also add the function @code{appt-make-list} to the | |
| 1324 @code{diary-hook}, like this: | |
| 1325 | |
| 1326 @example | |
| 1327 (add-hook 'diary-hook 'appt-make-list) | |
| 1328 @end example | |
| 1329 | |
| 1330 @noindent | |
| 1331 Adding this text to your @file{.emacs} file does the whole job: | |
| 1332 | |
| 1333 @example | |
| 1334 (display-time) | |
| 1335 (add-hook 'diary-hook 'appt-make-list) | |
| 1336 (diary 0) | |
| 1337 @end example | |
| 1338 | |
| 1339 With these preparations done, when you display the diary (either with | |
| 1340 the @kbd{d} command in the calendar window or with the @kbd{M-x diary} | |
| 1341 command), it sets up an appointment list of all the diary entries found | |
| 1342 with recognizable times of day, and reminds you just before each of | |
| 1343 them. | |
| 1344 | |
| 1345 For example, suppose the diary file contains these lines: | |
| 1346 | |
| 1347 @example | |
| 1348 Monday | |
| 1349 9:30am Coffee break | |
| 1350 12:00pm Lunch | |
| 1351 @end example | |
| 1352 | |
| 1353 @noindent | |
| 1354 Then on Mondays, after you have displayed the diary, you will be | |
| 1355 reminded at 9:20am about your coffee break and at 11:50am about lunch. | |
| 1356 | |
| 1357 You can write times in am/pm style (with @samp{12:00am} standing | |
| 1358 for midnight and @samp{12:00pm} standing for noon), or 24-hour | |
| 1359 European/military style. You need not be consistent; your diary file | |
| 1360 can have a mixture of the two styles. | |
| 1361 | |
| 1362 @vindex appt-display-diary | |
| 1363 Emacs updates the appointments list automatically just after | |
| 1364 midnight. This also displays the next day's diary entries in the diary | |
| 1365 buffer, unless you set @code{appt-display-diary} to @code{nil}. | |
| 1366 | |
| 1367 @findex appt-add | |
| 1368 @findex appt-delete | |
| 1369 @cindex alarm clock | |
| 1370 You can also use the appointment notification facility like an alarm | |
| 1371 clock. The command @kbd{M-x appt-add} adds entries to the appointment | |
| 1372 list without affecting your diary file. You delete entries from the | |
| 1373 appointment list with @kbd{M-x appt-delete}. | |
| 1374 | |
| 1375 @vindex appt-issue-message | |
| 1376 You can turn off the appointment notification feature at any time by | |
| 1377 setting @code{appt-issue-message} to @code{nil}. | |
| 1378 | |
| 1379 @node Daylight Savings | |
| 1380 @section Daylight Savings Time | |
| 1381 @cindex daylight savings time | |
| 1382 | |
| 1383 Emacs understands the difference between standard time and daylight | |
| 1384 savings time---the times given for sunrise, sunset, solstices, | |
| 1385 equinoxes, and the phases of the moon take that into account. The rules | |
| 1386 for daylight savings time vary from place to place and have also varied | |
| 1387 historically from year to year. To do the job properly, Emacs needs to | |
| 1388 know which rules to use. | |
| 1389 | |
| 1390 @vindex calendar-daylight-savings-starts | |
| 1391 @vindex calendar-daylight-savings-ends | |
| 1392 Some operating systems keep track of the rules that apply to the place | |
| 1393 where you are; on these systems, Emacs gets the information it needs | |
| 1394 from the system automatically. If some or all of this information is | |
| 1395 missing, Emacs fills in the gaps with the rules currently used in | |
| 1396 Cambridge, Massachusetts. If the resulting rules are not what you want, | |
| 1397 you can tell Emacs the rules to use by setting certain variables: | |
| 1398 @code{calendar-daylight-savings-starts} and | |
| 1399 @code{calendar-daylight-savings-ends}. | |
| 1400 | |
| 1401 These values should be Lisp expressions that refer to the variable | |
| 1402 @code{year}, and evaluate to the Gregorian date on which daylight | |
| 1403 savings time starts or (respectively) ends, in the form of a list | |
| 1404 @code{(@var{month} @var{day} @var{year})}. The values should be | |
| 1405 @code{nil} if your area does not use daylight savings time. | |
| 1406 | |
| 1407 Emacs uses these expressions to determine the starting date of | |
| 1408 daylight savings time for the holiday list and for correcting times of | |
| 1409 day in the solar and lunar calculations. | |
| 1410 | |
| 1411 The values for Cambridge, Massachusetts are as follows: | |
| 1412 | |
| 1413 @example | |
| 1414 (calendar-nth-named-day 1 0 4 year) | |
| 1415 (calendar-nth-named-day -1 0 10 year) | |
| 1416 @end example | |
| 1417 | |
| 1418 @noindent | |
| 1419 That is, the first 0th day (Sunday) of the fourth month (April) in | |
| 1420 the year specified by @code{year}, and the last Sunday of the tenth month | |
| 1421 (October) of that year. If daylight savings time were | |
| 1422 changed to start on October 1, you would set | |
| 1423 @code{calendar-daylight-savings-starts} to this: | |
| 1424 | |
| 1425 @example | |
| 1426 (list 10 1 year) | |
| 1427 @end example | |
| 1428 | |
| 1429 If there is no daylight savings time at your location, or if you want | |
| 1430 all times in standard time, set @code{calendar-daylight-savings-starts} | |
| 1431 and @code{calendar-daylight-savings-ends} to @code{nil}. | |
| 1432 | |
| 1433 @vindex calendar-daylight-time-offset | |
| 1434 The variable @code{calendar-daylight-time-offset} specifies the | |
| 1435 difference between daylight savings time and standard time, measured in | |
| 1436 minutes. The value for Cambridge, Massachusetts is 60. | |
| 1437 | |
| 1438 @c @vindex calendar-daylight-savings-starts-time too long! | |
| 1439 @vindex calendar-daylight-savings-ends-time | |
| 1440 The two variables @code{calendar-daylight-savings-starts-time} and | |
| 1441 @code{calendar-daylight-savings-ends-time} specify the number of minutes | |
| 1442 after midnight local time when the transition to and from daylight | |
| 1443 savings time should occur. For Cambridge, Massachusetts both variables' | |
| 1444 values are 120. | |
| 30794 | 1445 |
| 1446 @node Time Intervals | |
|
36145
c70d510bdb54
Various clarifications.
Richard M. Stallman <rms@gnu.org>
parents:
30794
diff
changeset
|
1447 @section Summing Time Intervals |
|
c70d510bdb54
Various clarifications.
Richard M. Stallman <rms@gnu.org>
parents:
30794
diff
changeset
|
1448 @cindex time intervals, summing |
|
c70d510bdb54
Various clarifications.
Richard M. Stallman <rms@gnu.org>
parents:
30794
diff
changeset
|
1449 @cindex summing time intervals |
|
c70d510bdb54
Various clarifications.
Richard M. Stallman <rms@gnu.org>
parents:
30794
diff
changeset
|
1450 @cindex timeclock |
| 30794 | 1451 |
|
36145
c70d510bdb54
Various clarifications.
Richard M. Stallman <rms@gnu.org>
parents:
30794
diff
changeset
|
1452 The timeclock feature adds up time intervals, so you can (for |
|
c70d510bdb54
Various clarifications.
Richard M. Stallman <rms@gnu.org>
parents:
30794
diff
changeset
|
1453 instance) keep track of how much time you spend working. |
| 30794 | 1454 |
| 1455 @findex timeclock-in | |
| 1456 @findex timeclock-out | |
| 1457 @findex timeclock-workday-remaining | |
| 1458 @findex timeclock-when-to-leave | |
| 1459 Use the @kbd{M-x timeclock-in} command when you start working on a | |
|
36145
c70d510bdb54
Various clarifications.
Richard M. Stallman <rms@gnu.org>
parents:
30794
diff
changeset
|
1460 project, and @kbd{M-x timeclock-out} command when you're done. Each |
|
c70d510bdb54
Various clarifications.
Richard M. Stallman <rms@gnu.org>
parents:
30794
diff
changeset
|
1461 time you do this, it adds one time interval to the record of the project. |
|
c70d510bdb54
Various clarifications.
Richard M. Stallman <rms@gnu.org>
parents:
30794
diff
changeset
|
1462 |
|
c70d510bdb54
Various clarifications.
Richard M. Stallman <rms@gnu.org>
parents:
30794
diff
changeset
|
1463 Once you've collected data from a number of time intervals, you can use |
|
c70d510bdb54
Various clarifications.
Richard M. Stallman <rms@gnu.org>
parents:
30794
diff
changeset
|
1464 @kbd{M-x timeclock-workday-remaining} to see how much time is left to |
|
c70d510bdb54
Various clarifications.
Richard M. Stallman <rms@gnu.org>
parents:
30794
diff
changeset
|
1465 work today (assuming a typical average of 8 hours a day), and @kbd{M-x |
|
c70d510bdb54
Various clarifications.
Richard M. Stallman <rms@gnu.org>
parents:
30794
diff
changeset
|
1466 timeclock-when-to-leave} which will calculate when you're ``done.'' |
| 30794 | 1467 |
| 1468 @vindex timeclock-modeline-display | |
| 1469 @findex timeclock-modeline-display | |
| 1470 If you want Emacs to display the amount of time ``left'' of your | |
| 1471 workday in the mode line, either customize the | |
| 1472 @code{timeclock-modeline-display} variable and set its value to | |
| 1473 @code{t}, or invoke the @kbd{M-x timeclock-modeline-display} command. | |
| 1474 | |
| 1475 @vindex timeclock-ask-before-exiting | |
|
36145
c70d510bdb54
Various clarifications.
Richard M. Stallman <rms@gnu.org>
parents:
30794
diff
changeset
|
1476 Terminating the current Emacs session might or might not mean that |
|
c70d510bdb54
Various clarifications.
Richard M. Stallman <rms@gnu.org>
parents:
30794
diff
changeset
|
1477 you have stopped working on the project. If you'd like Emacs to ask |
|
c70d510bdb54
Various clarifications.
Richard M. Stallman <rms@gnu.org>
parents:
30794
diff
changeset
|
1478 you about this, set the value of the variable |
|
c70d510bdb54
Various clarifications.
Richard M. Stallman <rms@gnu.org>
parents:
30794
diff
changeset
|
1479 @code{timeclock-ask-before-exiting} to @code{t} (via @kbd{M-x |
|
c70d510bdb54
Various clarifications.
Richard M. Stallman <rms@gnu.org>
parents:
30794
diff
changeset
|
1480 customize}). By default, only an explicit @kbd{M-x timeclock-out} |
|
c70d510bdb54
Various clarifications.
Richard M. Stallman <rms@gnu.org>
parents:
30794
diff
changeset
|
1481 tells Emacs that the current interval is over. |
| 30794 | 1482 |
| 1483 @cindex @file{.timelog} file | |
| 1484 @vindex timeclock-file | |
| 1485 @findex timeclock-reread-log | |
|
37709
e58e22c73805
Clarify `p' commands again.
Richard M. Stallman <rms@gnu.org>
parents:
37142
diff
changeset
|
1486 The timeclock functions work by accumulating the data in a file |
|
36145
c70d510bdb54
Various clarifications.
Richard M. Stallman <rms@gnu.org>
parents:
30794
diff
changeset
|
1487 called @file{.timelog} in your home directory. (On MS-DOS, this file |
|
c70d510bdb54
Various clarifications.
Richard M. Stallman <rms@gnu.org>
parents:
30794
diff
changeset
|
1488 is called @file{_timelog}, since an initial period is not allowed in |
|
c70d510bdb54
Various clarifications.
Richard M. Stallman <rms@gnu.org>
parents:
30794
diff
changeset
|
1489 file names on MS-DOS.) You can specify a different name for this file |
|
c70d510bdb54
Various clarifications.
Richard M. Stallman <rms@gnu.org>
parents:
30794
diff
changeset
|
1490 by customizing the variable @code{timeclock-file}. If you edit the |
|
c70d510bdb54
Various clarifications.
Richard M. Stallman <rms@gnu.org>
parents:
30794
diff
changeset
|
1491 timeclock file manually, or if you change the value of any of |
|
c70d510bdb54
Various clarifications.
Richard M. Stallman <rms@gnu.org>
parents:
30794
diff
changeset
|
1492 timeclock's customizable variables, you should run the command |
|
c70d510bdb54
Various clarifications.
Richard M. Stallman <rms@gnu.org>
parents:
30794
diff
changeset
|
1493 @kbd{M-x timeclock-reread-log} to update the data in Emacs from the |
|
c70d510bdb54
Various clarifications.
Richard M. Stallman <rms@gnu.org>
parents:
30794
diff
changeset
|
1494 file. |
