我经常使用stackoverflow来找到问题的答案,但我似乎无法解决这个问题。所以这是我的第一个问题:
我有一张Google表单(其中包括)询问工作的持续时间。我希望谷歌电子表格包含表单答案,并添加一些列。在这种情况下,我想使用126的小时费率来添加工作成本, -
但是我在计算持续时间方面一直遇到问题:我的脚本要么告诉我它的文本(如果我在检索数据时使用getDisplayValue),要么在电子表格本身给出了#NUM错误。
有人能指出我如何从表格字段中检索小时和分钟(时间作为持续时间),所以我可以在脚本中用它做一些基本的数学运算吗?
我已经设置了一个小表单并连接了显示我的问题的电子表格。示例表单只询问持续时间,并将其放在第2列的电子表格中。在电子表格中,我设置了一个在表单上运行的脚本提交,我尝试解释我所做的所有步骤。脚本应采用表单输入,将其转换为小时(作为num-field)并将其与PricePerHour相乘。结果应放在表单提交的同一行的第3列中。
到目前为止,这是我的脚本:
// CALCULATE COST OF JOB
function calculatePriceDuration(e) {
// get source data
var sourceSheet = SpreadsheetApp.getActiveSheet(); // connect to source sheet
var sourceRow = sourceSheet.getActiveRange().getRow(); // connect to event row (form submit)
// get destination data
var destinationSheet = sourceSheet; // connect to destination sheet
var destinationRow = sourceRow; // connect to destination row
var destinationColID = 3; // set column number of value to paste
// set variables
var colID_FormDuration = 2; // set column number where the form places the duration
var formDuration = sourceSheet.getRange(sourceRow, colID_FormDuration).getDisplayValue(); // get value for duration
// set price per hour
var PricePerHour = 126;
// calculate job price
var PriceForJob = formDuration * PricePerHour;
// set destination cell
destinationSheet.getRange(destinationRow,destinationColID).setValue(PriceForJob); // paste value in the 3rd column of the same row of form submit
}
可以找到电子表格本身here:
可以找到表单here:
非常感谢任何帮助! 亲切的问候, 罗布
答案 0 :(得分:0)
试试这个:
function calcTimeDifference(Start,End)
{
if(Start && End)
{
var second=1000;
var minute=60*second;
var hour=minute*60;
var day=hour*24;
var t1=new Date(Start).valueOf();
var t2=new Date(End).valueOf();
var d=t2-t1;
var days=Math.floor(d/day);
var hours=Math.floor(d%day/hour);
var minutes=Math.floor(d%day%hour/minute);
var seconds=Math.floor(d%day%hour%minute/second);
return 'dd:hh:mm:ss\n' + days + ':' + hours + ':' + minutes + ':' + seconds;
}
else
{
return 'Invalid Inputs';
}
}
答案 1 :(得分:0)
感谢chirag90编辑我的问题,tehhowch和cooper为我提供了答案。不幸的是,我的Javascript技能太差了,无法真正理解你的答案。
幸运的是,我发现StackOverflow上的this post是我问题的完美解决方案:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<link href="css/lightbox.min.css" rel="stylesheet">
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Audit Evidence</title>
</head>
<body onload="hide1()">
<%String filename1 = (String)request.getAttribute("filename1"); %>
<%String filename2 = (String)request.getAttribute("filename2"); %>
<%String filename3 = (String)request.getAttribute("filename3"); %>
<%String filename4 = (String)request.getAttribute("filename4"); %>
<%String filename5 = (String)request.getAttribute("filename5"); %>
<%String filename6 = (String)request.getAttribute("filename6"); %>
<%String filename7 = (String)request.getAttribute("filename7"); %>
<%String filename8 = (String)request.getAttribute("filename8"); %>
<%String filename9 = (String)request.getAttribute("filename9"); %>
<%String filename10 = (String)request.getAttribute("filename10"); %>
<%String filename11 = (String)request.getAttribute("filename11"); %>
<%String filename12 = (String)request.getAttribute("filename12"); %>
<%--
<img src="/AuditEvidenceImages/<%=filename1%>" ><BR>
<%=filename1%><BR><BR>
<img src="/AuditEvidenceImages/<%=filename2%>" ><BR>
<%=filename2%><BR><BR>
<img src="/AuditEvidenceImages/<%=filename3%>" ><BR>
<%=filename3%><BR><BR>
<img id="imgZoom" src="/AuditEvidenceImages/<%=filename1%>"><BR> --%>
<a href="/AuditEvidenceImages/<%=filename1%>" data-lightbox="AuditEvidence" data-title="first image"><img id="filename1" class="Evidence" src="/AuditEvidenceImages/<%=filename1%>" alt="" height="150px" width="150px" /></a>
<a href="/AuditEvidenceImages/<%=filename2%>" data-lightbox="AuditEvidence" data-title="second image"><img id="filename2" class="Evidence" src="/AuditEvidenceImages/<%=filename2%>" alt="" height="150px" width="150px"/></a>
<a href="/AuditEvidenceImages/<%=filename3%>" data-lightbox="AuditEvidence" data-title="third image"><img id="filename3" class="Evidence" src="/AuditEvidenceImages/<%=filename3%>" alt="" height="150px" width="150px"/></a>
<a href="/AuditEvidenceImages/<%=filename4%>" data-lightbox="AuditEvidence" data-title="fourth image"><img id="filename4" class="Evidence" src="/AuditEvidenceImages/<%=filename4%>" alt="" height="150px" width="150px"/></a>
<a href="/AuditEvidenceImages/<%=filename5%>" data-lightbox="AuditEvidence" data-title="fifth image"><img id="filename5" class="Evidence" src="/AuditEvidenceImages/<%=filename5%>" alt="" height="150px" width="150px"/></a>
<a href="/AuditEvidenceImages/<%=filename6%>" data-lightbox="AuditEvidence" data-title="sixth image"><img id="filename6" class="Evidence" src="/AuditEvidenceImages/<%=filename6%>" alt="" height="150px" width="150px"/></a>
<a href="/AuditEvidenceImages/<%=filename7%>" data-lightbox="AuditEvidence" data-title="seventh image"><img id="filename7" class="Evidence" src="/AuditEvidenceImages/<%=filename7%>" alt="" height="150px" width="150px"/></a>
<a href="/AuditEvidenceImages/<%=filename8%>" data-lightbox="AuditEvidence" data-title="eighth image"><img id="filename8" class="Evidence" src="/AuditEvidenceImages/<%=filename8%>" alt="" height="150px" width="150px"/></a>
<a href="/AuditEvidenceImages/<%=filename9%>" data-lightbox="AuditEvidence" data-title="ninth image"><img id="filename9" class="Evidence" src="/AuditEvidenceImages/<%=filename9%>" alt="" height="150px" width="150px"/></a>
<a href="/AuditEvidenceImages/<%=filename10%>" data-lightbox="AuditEvidence" data-title="tenth image"><img id="filename10" class="Evidence" src="/AuditEvidenceImages/<%=filename10%>" alt="" height="150px" width="150px"/></a>
<a href="/AuditEvidenceImages/<%=filename11%>" data-lightbox="AuditEvidence" data-title="eleventh image"><img id="filename11" class="Evidence" src="/AuditEvidenceImages/<%=filename11%>" alt="" height="150px" width="150px"/></a>
<a href="/AuditEvidenceImages/<%=filename12%>" data-lightbox="AuditEvidence" data-title="twelveth image"><img id="filename12" class="Evidence" src="/AuditEvidenceImages/<%=filename12%>" alt="" height="150px" width="150px"/></a>
<script src="js/lightbox-plus-jquery.min.js"></script>
<script>
function hide1() {
if (<%=filename1%> == null) {
document.getElementById("filename1").style.visibility = "hidden";
}
if (<%=filename2%> == null) {
document.getElementById("filename2").style.visibility = "hidden";
}
if (<%=filename3%> == null) {
document.getElementById("filename3").style.visibility = "hidden";
}
if (<%=filename4%> == null) {
document.getElementById("filename4").style.visibility = "hidden";
}
if (<%=filename5%> == null) {
document.getElementById("filename5").style.visibility = "hidden";
}
if (<%=filename6%> == null) {
document.getElementById("filename6").style.visibility = "hidden";
}
if (<%=filename7%> == null) {
document.getElementById("filename7").style.visibility = "hidden";
}
if (<%=filename8%> == null) {
document.getElementById("filename8").style.visibility = "hidden";
}
if (<%=filename9%> == null) {
document.getElementById("filename9").style.visibility = "hidden";
}
if (<%=filename10%> == null) {
document.getElementById("filename10").style.visibility = "hidden";
}
if (<%=filename11%> == null) {
document.getElementById("filename11").style.visibility = "hidden";
}
if (<%=filename12%> == null) {
document.getElementById("filename12").style.visibility = "hidden";
}
}
</script>
</body>
</html>
再次感谢您的努力,也许您可以指导我(在线/荷兰)课程,在那里我可以学习正确使用Javascript。