;;; sv-kalender.el --- Svenska kalenderfunktioner- och inställningar för Emacs ;;; version 1.4 ;;; Copyright (c) 2002-2004 av Daniel Jensen ;;; Denna fil är licensierad under GNU GPL. ;;; Licensvatalet finns att läsa på http://www.gnu.org/copyleft/gpl.html ;;; En svensk översättning finns på http://www.gnuheter.org/gpl.php ;;;; Kommentarer: ;;; Denna fil modifierar hur Emacs kalender ser ut. Den byter namn på ;;; veckodagar, månader etc., samt inför svenska helgdagar och högtider ;;; i stället för de amerikanska. ;;; ;;; För att använda den svenska kalendern behöver du bara placera ;;; (load "sv-kalender") någonstans i din ~/.emacs ;;;; Ändringar: ;;; 1.4 - Månader och dagar med små begynnelsebokstäver ;;; 1.3 - Nya flaggdagar och en bugg i "mer påsk" fixad (Alan Campbell) ;;; 1.2 - Adventsdagarna justerade (Alan Campbell) ;;; 1.1 - Fettisdagen flyttad en vecka bakåt. ;;;; Kod: ;;; Allmänna inställningar ;; Veckan börjar med en måndag (setq calendar-week-start-day 1) ;; Använd "europeiska" datum (dag/måndad) (setq european-calendar-style 1) ;; Datumformat (setq calendar-date-display-form '((if dayname (concat dayname ", ")) day " " monthname " " year)) ;; 24-timmarsklocka utan tidszon (setq calendar-time-display-form '(24-hours ":" minutes)) ;; Dagarnas namn (setq calendar-day-name-array ["söndag" "måndag" "tisdag" "onsdag" "torsdag" "fredag" "lördag"]) ;; Månadernas namn (setq calendar-month-name-array ["januari" "februari" "mars" "april" "maj" "juni" "juli" "augusti" "september" "oktober" "november" "december"]) ;; Årets vändpunkter (setq solar-n-hemi-seasons '("Vårdagjämningen" "Sommarsolståndet" "Höstdagjämningen" "Vintersolståndet")) ;; Ändra till t för att gömma vissa högtider (defvar hide-some-holidays nil "Om icke-NIL, göm vissa helgdagar i kalendern") ;; Göm andra helgdagar (setq oriental-holidays nil islamic-holidays nil hebrew-holidays nil christian-holidays nil) ;;; Påskdagen ;; Många helgdagar utgår från påskdagen. Den är lite knepig att räkna ut! (defun påskdagen (år) "Datum för påskdagen för ett visst ÅR." (let* ((århundrade (1+ (/ år 100))) (månfas (% (+ 14 (* 11 (% år 19)) (- (/ (* 3 århundrade) 4)) (/ (+ 5 (* 8 århundrade)) 25) (* 30 århundrade)) 30)) (justerad-fas (if (or (= månfas 0) (and (= månfas 1) (< 10 (% år 19)))) (1+ månfas) månfas)) (fullmåne (- (calendar-absolute-from-gregorian (list 4 19 år)) justerad-fas)) (påsk (calendar-dayname-on-or-before 0 (+ fullmåne 7)))) påsk)) ;;; Helgdagar (setq general-holidays '((holiday-fixed 1 1 "Nyårsdagen") (holiday-fixed 1 6 "Trettondedag jul") ;; Påsk och pingst (filter-visible-calendar-holidays (mapcar (lambda (dag) (list (calendar-gregorian-from-absolute (+ (påskdagen displayed-year) (car dag))) (cadr dag))) '(( -2 "Långfredagen") ( -1 "Påskafton") ( 0 "Påskdagen") ( +1 "Annandag påsk") ( +39 "Kristi himmelfärdsdag") ( +49 "Pingstdagen") ( +50 "Annandag pingst")))) (holiday-fixed 5 1 "Första maj") (let ((midsommar-d (calendar-dayname-on-or-before 6 (calendar-absolute-from-gregorian (list 6 26 displayed-year))))) ;; midsommar (filter-visible-calendar-holidays (list (list (calendar-gregorian-from-absolute (1- midsommar-d)) "Midsommarafton") (list (calendar-gregorian-from-absolute midsommar-d) "Midsommardagen") ;; Alla helgons dag (list (calendar-gregorian-from-absolute (calendar-dayname-on-or-before 6 (calendar-absolute-from-gregorian (list 11 6 displayed-year)))) "Alla helgons dag")))) (holiday-fixed 12 25 "Juldagen") (holiday-fixed 12 26 "Annandag jul"))) ;;; Andra högtider (setq other-holidays '((holiday-fixed 1 13 "Tjogondag Knut") (unless hide-some-holidays (holiday-fixed 1 28 "Konungens namnsdag")) (unless hide-some-holidays (holiday-fixed 2 2 "Kyndelsmässodagen")) (holiday-fixed 2 14 "Alla hjärtans dag") ;; fettisdagen (filter-visible-calendar-holidays (list (list (calendar-gregorian-from-absolute (calendar-dayname-on-or-before 2 (- (påskdagen displayed-year) 47))) "Fettisdagen"))) (holiday-fixed 3 8 "Internationella kvinnodagen") (unless hide-some-holidays (holiday-fixed 3 12 "Kronprinsessans namnsdag")) (holiday-fixed 3 25 "Vårfrudagen") ;; mer påsk (filter-visible-calendar-holidays (mapcar (lambda (dag) (list (calendar-gregorian-from-absolute (+ (påskdagen displayed-year) (car dag))) (cadr dag))) (if hide-some-holidays '(( -3 "Skärtorsdagen")) '(( -7 "Palmsöndagen") ( -4 "Dymmelonsdagen") ( -3 "Skärtorsdagen"))))) (unless hide-some-holidays (holiday-fixed 4 30 "Konungens födelsedag")) (unless hide-some-holidays (holiday-fixed 4 1 "Första april")) (holiday-fixed 4 30 "Valborgsmässoafton") (holiday-float 5 0 -1 "Mors dag") (holiday-fixed 6 6 "Sveriges nationaldag") (unless hide-some-holidays (holiday-fixed 7 14 "Kronprinsessans födelsedag")) (unless hide-some-holidays (holiday-fixed 8 8 "Drottningens namnsdag")) (holiday-fixed 10 24 "FN-dagen") (holiday-float 11 0 2 "Fars dag") (unless hide-some-holidays (holiday-fixed 11 6 "Gustaf Adolfsdagen")) (holiday-fixed 11 10 "Mårtensafton") (holiday-float 12 0 -4 "Första advent" 24) (holiday-float 12 0 -3 "Andra advent" 24) (holiday-float 12 0 -2 "Tredje advent" 24) (holiday-float 12 0 -1 "Fjärde advent" 24) (holiday-fixed 12 10 "Nobeldagen") (holiday-fixed 12 13 "Lucia") (unless hide-some-holidays (holiday-fixed 12 23 "Drottningens födelsedag")) (holiday-fixed 12 24 "Julafton") (holiday-fixed 12 31 "Nyårsafton"))) ;;; Solstånd, dagjämningar, vinter- och sommartid (setq solar-holidays (if hide-some-holidays nil '((if (fboundp 'atan) (solar-equinoxes-solstices)) (if (progn (require 'cal-dst) t) (funcall 'holiday-sexp calendar-daylight-savings-starts '(format "Sommartid börjar %s" (if (fboundp 'atan) (solar-time-string (/ calendar-daylight-savings-starts-time (float 60)) calendar-standard-time-zone-name) "")))) (funcall 'holiday-sexp calendar-daylight-savings-ends '(format "Vintertid börjar %s" (if (fboundp 'atan) (solar-time-string (/ calendar-daylight-savings-ends-time (float 60)) calendar-daylight-time-zone-name) ""))))))