1 |
;;; cal-islam.el --- calendar functions for the Islamic calendar |
;;; cal-islam.el --- calendar functions for the Islamic calendar |
2 |
|
|
3 |
;; Copyright (C) 1995, 1997, 2001 Free Software Foundation, Inc. |
;; Copyright (C) 1995, 1997, 2001, 2003 Free Software Foundation, Inc. |
4 |
|
|
5 |
;; Author: Edward M. Reingold <reingold@cs.uiuc.edu> |
;; Author: Edward M. Reingold <reingold@cs.uiuc.edu> |
6 |
;; Keywords: calendar |
;; Keywords: calendar |
40 |
|
|
41 |
;;; Code: |
;;; Code: |
42 |
|
|
43 |
|
(defvar displayed-month) |
44 |
|
(defvar displayed-year) |
45 |
|
|
46 |
(require 'cal-julian) |
(require 'cal-julian) |
47 |
|
|
48 |
(defvar calendar-islamic-month-name-array |
(defvar calendar-islamic-month-name-array |
49 |
["Muharram" "Safar" "Rabi I" "Rabi II" "Jumada I" "Jumada II" |
["Muharram" "Safar" "Rabi I" "Rabi II" "Jumada I" "Jumada II" |
50 |
"Rajab" "Sha'ban" "Ramadan" "Shawwal" "Dhu al-Qada" "Dhu al-Hijjah"]) |
"Rajab" "Sha'ban" "Ramadan" "Shawwal" "Dhu al-Qada" "Dhu al-Hijjah"] |
51 |
|
"Array of strings giving the names of the Islamic months.") |
52 |
|
|
53 |
(defvar calendar-islamic-epoch (calendar-absolute-from-julian '(7 16 622)) |
(defvar calendar-islamic-epoch (calendar-absolute-from-julian '(7 16 622)) |
54 |
"Absolute date of start of Islamic calendar = August 29, 284 A.D. (Julian).") |
"Absolute date of start of Islamic calendar = August 29, 284 A.D. (Julian).") |
225 |
(car d))) |
(car d))) |
226 |
(backup (equal (car (car d)) 'backup)) |
(backup (equal (car (car d)) 'backup)) |
227 |
(dayname |
(dayname |
228 |
(concat |
(format "%s\\|%s\\.?" |
229 |
(calendar-day-name gdate) "\\|" |
(calendar-day-name gdate) |
230 |
(substring (calendar-day-name gdate) 0 3) ".?")) |
(calendar-day-name gdate 'abbrev))) |
231 |
(calendar-month-name-array |
(calendar-month-name-array |
232 |
calendar-islamic-month-name-array) |
calendar-islamic-month-name-array) |
233 |
(monthname |
(monthname |
273 |
gdate |
gdate |
274 |
(buffer-substring-no-properties entry-start (point)) |
(buffer-substring-no-properties entry-start (point)) |
275 |
(buffer-substring-no-properties |
(buffer-substring-no-properties |
276 |
(1+ date-start) (1- entry-start))))))) |
(1+ date-start) (1- entry-start)) |
277 |
|
(copy-marker entry-start)))))) |
278 |
(setq d (cdr d)))) |
(setq d (cdr d)))) |
279 |
(setq gdate |
(setq gdate |
280 |
(calendar-gregorian-from-absolute |
(calendar-gregorian-from-absolute |
298 |
((date-form (if (equal (car (car d)) 'backup) |
((date-form (if (equal (car (car d)) 'backup) |
299 |
(cdr (car d)) |
(cdr (car d)) |
300 |
(car d)));; ignore 'backup directive |
(car d)));; ignore 'backup directive |
301 |
(dayname (diary-name-pattern calendar-day-name-array)) |
(dayname (diary-name-pattern calendar-day-name-array |
302 |
|
calendar-day-abbrev-array)) |
303 |
(monthname |
(monthname |
304 |
(concat |
(format "%s\\|\\*" |
305 |
(diary-name-pattern calendar-islamic-month-name-array t) |
(diary-name-pattern calendar-islamic-month-name-array))) |
|
"\\|\\*")) |
|
306 |
(month "[0-9]+\\|\\*") |
(month "[0-9]+\\|\\*") |
307 |
(day "[0-9]+\\|\\*") |
(day "[0-9]+\\|\\*") |
308 |
(year "[0-9]+\\|\\*") |
(year "[0-9]+\\|\\*") |
372 |
(string-to-int y-str))))) |
(string-to-int y-str))))) |
373 |
(if dd-name |
(if dd-name |
374 |
(mark-calendar-days-named |
(mark-calendar-days-named |
375 |
(cdr (assoc-ignore-case (substring dd-name 0 3) |
(cdr (assoc-ignore-case dd-name |
376 |
(calendar-make-alist |
(calendar-make-alist |
377 |
calendar-day-name-array |
calendar-day-name-array |
378 |
0 |
0 nil calendar-day-abbrev-array)))) |
|
'(lambda (x) (substring x 0 3)))))) |
|
379 |
(if mm-name |
(if mm-name |
380 |
(if (string-equal mm-name "*") |
(setq mm (if (string-equal mm-name "*") 0 |
381 |
(setq mm 0) |
(cdr (assoc-ignore-case |
382 |
(setq mm |
mm-name |
383 |
(cdr (assoc-ignore-case |
(calendar-make-alist |
384 |
mm-name |
calendar-islamic-month-name-array)))))) |
|
(calendar-make-alist |
|
|
calendar-islamic-month-name-array)))))) |
|
385 |
(mark-islamic-calendar-date-pattern mm dd yy))))) |
(mark-islamic-calendar-date-pattern mm dd yy))))) |
386 |
(setq d (cdr d))))) |
(setq d (cdr d))))) |
387 |
|
|
497 |
|
|
498 |
(provide 'cal-islam) |
(provide 'cal-islam) |
499 |
|
|
500 |
|
;;; arch-tag: a951b6c1-6f47-48d5-bac3-1b505cd719f7 |
501 |
;;; cal-islam.el ends here |
;;; cal-islam.el ends here |