From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Ari Roponen Newsgroups: gmane.emacs.help Subject: Re: elisp Q: round & display time in 5-min. increments Date: Fri, 30 Nov 2007 09:51:58 +0200 Message-ID: References: <59c4e557-3273-4a7a-a773-a4da0260a084@i12g2000prf.googlegroups.com> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Trace: ger.gmane.org 1196409347 5070 80.91.229.12 (30 Nov 2007 07:55:47 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Fri, 30 Nov 2007 07:55:47 +0000 (UTC) To: help-gnu-emacs@gnu.org Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Fri Nov 30 08:55:55 2007 Return-path: Envelope-to: geh-help-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by lo.gmane.org with esmtp (Exim 4.50) id 1Iy0iq-0007uB-C5 for geh-help-gnu-emacs@m.gmane.org; Fri, 30 Nov 2007 08:55:40 +0100 Original-Received: from localhost ([127.0.0.1] helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Iy0ia-0004Ak-Ns for geh-help-gnu-emacs@m.gmane.org; Fri, 30 Nov 2007 02:55:24 -0500 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1Iy0iK-0004AK-6H for help-gnu-emacs@gnu.org; Fri, 30 Nov 2007 02:55:08 -0500 Original-Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1Iy0iH-00049u-6d for help-gnu-emacs@gnu.org; Fri, 30 Nov 2007 02:55:07 -0500 Original-Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Iy0iG-00049r-W3 for help-gnu-emacs@gnu.org; Fri, 30 Nov 2007 02:55:05 -0500 Original-Received: from main.gmane.org ([80.91.229.2] helo=ciao.gmane.org) by monty-python.gnu.org with esmtps (TLS-1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.60) (envelope-from ) id 1Iy0iG-0003YM-CP for help-gnu-emacs@gnu.org; Fri, 30 Nov 2007 02:55:04 -0500 Original-Received: from root by ciao.gmane.org with local (Exim 4.43) id 1Iy0iE-0008Ip-66 for help-gnu-emacs@gnu.org; Fri, 30 Nov 2007 07:55:02 +0000 Original-Received: from dsl-jklgw4-ffdbc000-234.dhcp.inet.fi ([88.192.219.234]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Fri, 30 Nov 2007 07:55:02 +0000 Original-Received: from ari.roponen by dsl-jklgw4-ffdbc000-234.dhcp.inet.fi with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Fri, 30 Nov 2007 07:55:02 +0000 X-Injected-Via-Gmane: http://gmane.org/ Original-Lines: 42 Original-X-Complaints-To: usenet@ger.gmane.org X-Gmane-NNTP-Posting-Host: dsl-jklgw4-ffdbc000-234.dhcp.inet.fi User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/23.0.50 (gnu/linux) Cancel-Lock: sha1:FVXZAfQroC6E6PTEJ+wN1VwaotA= X-detected-kernel: by monty-python.gnu.org: Linux 2.6, seldom 2.4 (older, 4) X-BeenThere: help-gnu-emacs@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Users list for the GNU Emacs text editor List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Errors-To: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.help:49714 Archived-At: Hi, Edward writes: > (concat > (format-time-string "%H" (current-time)) > ":" > (int-to-string > (* (round (string-to-number (format-time-string > "%M" (current- > time))) 5) 5)) > " ") > > This works for most times, but it doesn't cover any edge conditions. > For example, between the 55th minute and the end of the hour, it > rounds to "60" and doesn't carry to the hour. Around the 5th minute, > it generates "5", but it doesn't pad with a zero. > > > Does anyone know of some pre-existing code in Emacs that does what > I'm > trying to do? Or failing that, does anyone have an elegant snippet > of code that accomplishes this task while meeting these edge- > conditions? I'm not worried about the midnight edge-condition, but > if you know of code that does that too, so much the better. I don't know about the existing code, but this seems to do what you want: (format-time-string "%H:%M " (apply 'encode-time (let* ((time (decode-time (time-add (current-time) (seconds-to-time 150)))) ;2m30s (mins (cadr time))) (setcar (cdr time) (- mins (mod mins 5))) time))) -- Ari Roponen