Check out the LimeSurvey source code on GitHub!

calculate an intervention duration

More
3 years 8 months ago #96184 by ahchouch
0Hi
I need to calculate the duration of an intervention in minutes.
I have 04 numeric type questions standing for hour and minute of benginning and finish of intervention.
Q1: Hour of incision
Q2/ minute of incision
Q3: Hour of closure
Q4: minute of closure
How can i do this with EM or JS?
The main issue is to handle the negative difference between hours or minutes (IH 23 and CH 00 for instance witch should give 01 hour difference not -23!)
Thanks in advance

Please Log in to join the conversation.

More
3 years 8 months ago #96185 by Ben_V
I'm not sure if you already know that you can use as well a very smart "timepicker" question ... :)
It's the end of the good news because I have no idea if it can be easier to handle your calculation with this :(

Benoît

EM Variables => bit.ly/1TKQyNu | EM Roadmap => bit.ly/1UTrOB4
All LS releases => bit.ly/1VMuTDu | 2.06lts => bit.ly/1Qv44A1
Demo surveys => goo.gl/HuR6Xe (already included in /docs/demosurveys)

Please Log in to join the conversation.

More
3 years 7 months ago #96187 by ahchouch
Thanks Ben
I actually kept my 4 numeric type questions and tried some JS.
I had first to set rules for calculating the duration according to hours and/or minutes of closure are superior or not hours and/or minutes of incision. (4 cases!)
It worked fine.
I just need to add an alert if one of the four fiels is empty. It seems simple but my knowledge of JS is less than basic! :(
Heres' the JS
<script type="text/JavaScript">
jQuery(document).ready(
    function(){
       // alert('onload alert!');
 
$('#answer941186X3X378,#answer941186X3X379,#answer941186X3X380,#answer941186X3X381').change(function() {
var hoi= parseInt($('#answer941186X3X378').val());
var moi= parseInt($('#answer941186X3X379').val());
var hoc= parseInt($('#answer941186X3X380').val());
var moc= parseInt($('#answer941186X3X381').val());
var duree = new Number();
 
if ((hoc >= hoi) && (moc >= moi)) {
duree = (60 * (hoc - hoi)) + (moc - moi);
}
if ((hoc >= hoi) && (moc < moi)) {
duree = 60 * (hoc - hoi - 1) + 60 - moi + moc;
}
if ((hoc < hoi) && (moc < moi)) {
duree = (60 * ((23 - hoi) + hoc)) + ((60 - moi) + moc);
}
if ((hoc < hoi) && (moc >= moi)) {
duree = (60 * ((24 - hoi) + hoc)) + (moc - moi);
}
 
	$('#answer941186X3X1341').val(duree);
 
});
 
    }
 
);
 
 
</script>

Please Log in to join the conversation.

More
3 years 7 months ago #96189 by Ben_V

I just need to add an alert if one of the four fiels is empty.

Sounds like the 4 questions just have to be set 'mandatory' :blink:

Remember that in the advanced settings of numerical input questions you can use the 'question validation equation' and 'question validation tip' to display a validation message...

(!is_empty(1234X56X789.NAOK))
or any more complex rule...e.g.:
((!is_empty(1234X56X789.NAOK) && (1234X56X789.NAOK >= "0"))


Benoît

EM Variables => bit.ly/1TKQyNu | EM Roadmap => bit.ly/1UTrOB4
All LS releases => bit.ly/1VMuTDu | 2.06lts => bit.ly/1Qv44A1
Demo surveys => goo.gl/HuR6Xe (already included in /docs/demosurveys)
Attachments:
The following user(s) said Thank You: ahchouch

Please Log in to join the conversation.

Imprint                   Privacy policy         General Terms & Conditions         Revocation information and revocation form