From mboxrd@z Thu Jan 1 00:00:00 1970 From: Karl Voit Subject: Calc: Multiply time (hours) with a float Date: Thu, 8 Sep 2016 10:33:37 +0200 Message-ID: <2016-09-08T10-32-27@devnull.Karl-Voit.at> Reply-To: Karl Voit Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:37467) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bhumf-0001eq-2s for emacs-orgmode@gnu.org; Thu, 08 Sep 2016 04:34:10 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bhuma-0005Ov-79 for emacs-orgmode@gnu.org; Thu, 08 Sep 2016 04:34:08 -0400 Received: from [195.159.176.226] (port=55328 helo=blaine.gmane.org) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bhuma-0005Ng-16 for emacs-orgmode@gnu.org; Thu, 08 Sep 2016 04:34:04 -0400 Received: from list by blaine.gmane.org with local (Exim 4.84_2) (envelope-from ) id 1bhumH-0005Sl-PX for emacs-orgmode@gnu.org; Thu, 08 Sep 2016 10:33:45 +0200 List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Sender: "Emacs-orgmode" To: emacs-orgmode@gnu.org Hi! I do have following situation: I'd like to multiply a float with hours which results in an error, obviously. However, I was not able to find out how to do it. Minimal example with expected product: | time [h:m:s] | value | product | |--------------+---------+-----------| | 09:15:00 | 2.54321 | 23.524693 | #+TBLFM: @2$3=$2*$1 In case you have time and energy to go deeper in my rabbit hole: My real world example which is a bit more complex in case you want to find a totally different way (workaround?) of calculating the stuff I need: First table determines the reference hours per day of my lawn mowing robot with the current program: #+NAME: robot-program | Status As Of | Start | End | Start | End | Hours/Day | |------------------+-------+-------+-------+-------+-----------| | <2016-06-30 Thu> | 11:30 | 19:30 | 20:30 | 21:45 | 09:15:00 | #+TBLFM: $6=($3-$2)+($5-$4);T Second table holds the logged number of hours of work for certain time stamps (first three columns). The thing I want to calculate is the number of hours the robot was *supposed* to work. Unfortunately, the robot gets stuck from time to time and therefore the logged working hours differ from the theoretical working hours (reference). For a better understanding, I split the calculation of $6 (my desired comparison value) and added $4 (the daily hour reference value) and $5 (difference between the current row and the previous one in time). Current situation with the ERROR: | Date | Hours | Difference [h] | Daily Reference | Difference [Days] | Reference Comparison [h] | |------------------------+-------+----------------+-----------------+-------------------+--------------------------| | <2016-08-13 Sat> | 100 | 100 | | | | | <2016-08-20 Sat 14:40> | 217 | 117 | 09:15:00 | 7.611111 | #ERROR | | <2016-08-27 Sat 19:08> | 245 | 28 | 09:15:00 | 7.186111 | #ERROR | #+TBLFM: $3=$2-subscr(@<$2..@>$2, @# - 1);N :: @3$4..@>$4=remote(robot-program,@>$6);T :: @3$5..@>$5=($1 - subscr(@<$1..@>$1, @# - 1)) :: @3$6..@>$6= $5 * $4 Desired output: | Date | Hours | Difference [h] | Daily Reference | Difference [Days] | Reference Comparison [h] | |------------------------+-------+----------------+-----------------+-------------------+--------------------------| | <2016-08-13 Sat> | 100 | 100 | | | | | <2016-08-20 Sat 14:40> | 217 | 117 | 09:15:00 | 7.611111 | 70.402777 | | <2016-08-27 Sat 19:08> | 245 | 28 | 09:15:00 | 7.186111 | 66.471527 | Nitpicking: yes, comparing reference*hours (of whole days) to log values which were logged in-between working hours is not exact even with zero percent stuck time. I'd like to have just a rough comparison. So if my desired output can be derived without multiplying hours to floats: I'm open ;-) -- mail|git|SVN|photos|postings|SMS|phonecalls|RSS|CSV|XML to Org-mode: > get Memacs from https://github.com/novoid/Memacs < https://github.com/novoid/extract_pdf_annotations_to_orgmode + more on github