[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[mhc:02146] patch (mhc-guess.el)



野口です。

下記の様なメール(機械的に出力されたものらしい)で、日付情報のguessに対
応できなかったので添付の変更を加えました。

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
1.実施要綱
期間:20050701〜20050801
:
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

他の関数のつくり上との整合性を考慮するなら、本来は
mhc-guess/make-date-from-yyyymmdd2() という関数を新規に用意し、「来年」
や「今年」などの記述にも対応できるようにすべきかとは思います。
が、今回は「目先のものが guess できて満足」のことまでしかしていません。

以上、ご検討いただければ幸いです。
-- 
NOGUCHI Yusuke <nogunogu@xxxxxxxxxxxxxxxx>



*** mhc-guess.el.3	Wed Jun 22 14:21:39 2005
--- mhc-guess.el	Wed Jul 13 17:58:49 2005
***************
*** 86,91 ****
--- 86,100 ----
  	      "\\([0-90-9][0-90-9]\\)")
       mhc-guess/make-date-from-yyyymmdd 1 2 3)
  
+     (,(concat "\\([0-90-9][0-90-9][0-90-9][0-90-9]\\)([-−//])?"
+ 	      "\\([0-90-9][0-90-9]\\)([-−//])?"
+ 	      "\\([0-90-9][0-90-9]\\)"
+ 	      "\\([〜−,,、-]\\|から\\|より\\)[\n  ]*"
+ 	      "\\([0-90-9][0-90-9][0-90-9][0-90-9]\\)([-−//])?"
+ 	      "\\([0-90-9][0-90-9]\\)([-−//])?"
+ 	      "\\([0-90-9][0-90-9]\\)")
+      mhc-guess/make-date-from-yyyymmdd 1 3 5 7 9 11)
+ 
      (,(concat "\\([来今本0-90-9]+年\\)?"
  	      "\\([来今0-90-9]+\\)[\n  ]*月[\n  ]*の?[\n  ]*"
  	      "\\([0-90-9]+\\)日?"
***************
*** 366,379 ****
  ;;
  
  
! (defun mhc-guess/make-date-from-yyyymmdd (now yy-str mm-str dd-str)
!   (let (date)
!     (if (setq date (mhc-date-new 
! 		    (mhc-guess/string-to-int yy-str)
! 		    (mhc-guess/string-to-int mm-str)
! 		    (mhc-guess/string-to-int dd-str)
! 		    t)) ; noerror is t.
! 	(cons date nil))))
  
  (defun mhc-guess/make-date-from-mmdd
    (now mm-str dd-str &optional mm-str2 dd-str2 relative)
--- 375,410 ----
  ;;
  
  
! ;; (defun mhc-guess/make-date-from-yyyymmdd (now yy-str mm-str dd-str)
! ;;   (let (date)
! ;;     (if (setq date (mhc-date-new 
! ;; 		    (mhc-guess/string-to-int yy-str)
! ;; 		    (mhc-guess/string-to-int mm-str)
! ;; 		    (mhc-guess/string-to-int dd-str)
! ;; 		    t)) ; noerror is t.
! ;; 	(cons date nil))))
! 
! (defun mhc-guess/make-date-from-yyyymmdd 
!   (now yy-str mm-str dd-str &optional yy-str2 mm-str2 dd-str2 relative)
!   (let* ((start nil) (end nil))
!     (setq start (mhc-date-new 
! 		 (mhc-guess/string-to-int yy-str)
! 		 (mhc-guess/string-to-int mm-str)
! 		 (mhc-guess/string-to-int dd-str)))
!     (if (and start (and yy-str2 mm-str2 dd-str2))
! 	(setq end (mhc-date-new 
! 		   (mhc-guess/string-to-int yy-str2)
! 		   (mhc-guess/string-to-int mm-str2)
! 		   (mhc-guess/string-to-int dd-str2))))
!     (cond 
!      ((null start)
!       nil)
!      ((null end)
!       (cons start nil))
!      (relative
!       (cons start (mhc-date+ start end)))
!      (t
!       (cons start end)))))
  
  (defun mhc-guess/make-date-from-mmdd
    (now mm-str dd-str &optional mm-str2 dd-str2 relative)