2017-04-18 16 views
0

Ich erstelle ein Skript für eine Tabelle mit Google-Skript. Aber ich habe ein Problem mit der Dauer.Umgang mit Dauer in Google Tabellen Scripts

Genauer gesagt, habe ich eine Datei mit 30000 Zeilen oder so, und ich möchte es nach bestimmten Kriterien überfliegen.
Erstens, wenn ein bestimmter Wert nicht Null ist, dann lösche ich die Zeile. Und dann muss ich eine Anfangsdauer, eine Enddauer und minimale und maximale Werte für dieses Intervall eingeben.
Danach möchte ich die Werte in diesem Zeitintervall durchlaufen und alles löschen, was nicht in dem oben definierten Bereich liegt.

Der erste Teil ist ziemlich einfach und wurde ohne Probleme gemacht. Für den zweiten Teil kann ich jedoch nicht herausfinden, wie man eine Dauer im selben Format wie die in der Datei angezeigte Dauer eingibt.

Meine Datei hat eine Dauer mit Format [hh] ":" mm ":" ss, aber wenn ich die Eingabe Dauer mit diesem Format versuchen, Es zeigt

[01]:00:00 

wenn ich Eingang 25:00:00

Hier ist das, was ich bisher habe:

function removeFromInterval() { 
var sheet = SpreadsheetApp.getActiveSheet(); 
var range = sheet.getRange("D1"); 
var ui = SpreadsheetApp.getUi(); 
var result = ui.prompt(
    'Création des valeurs de configuration', 
    'Entrez le temps minimum', 
    ui.ButtonSet.OK_CANCEL); 

// Process the user's response. 
var button = result.getSelectedButton(); 
var text = result.getResponseText(); 
if (button == ui.Button.OK) { 
    // User clicked "OK". 
    var value = new Date(text) 
    var date = Utilities.formatDate(value, 'GMT+1', '[hh]:mm:ss'); 
    display(date); 
} 
} 
+0

Können Sie das Fehlerprotokoll bereitstellen? – abielita

+0

Es gibt keinen Fehler, nur kann ich nicht herausfinden, wie ich meine Dauer im richtigen Format habe. – Irindul

+0

Das ist das ausgenommene Verhalten, 25:00:00 (hh: mm: ss) => es gibt keine 25 Stunden an einem Tag, daher wird 25 in 01 Stunden umgewandelt. Ebenso 24 => 0hrs, 26 => 2hrs Hope, das hilft –

Antwort

0

Sie mögen dies zu tun haben, Ihr Format

etwas zu setzen 0
function removeFromInterval() { 
    var sheet = SpreadsheetApp.getActiveSheet(); 
    var range = sheet.getRange("D1"); 
    var ui = SpreadsheetApp.getUi(); 
    var result = ui.prompt(
    'Création des valeurs de configuration', 
    'Entrez le temps minimum', 
    ui.ButtonSet.OK_CANCEL); 

    var button = result.getSelectedButton(); 
    var text = result.getResponseText(); 
    if (button == ui.Button.OK) { 
    range.setValue(text)     // set the value of the cell D1 to the text you input 
    range.setNumberFormat("[hh]:mm:ss")  //set the format of the cell to format you desire 
    } 
} 

als Grund dafür, dass Ihre Eingabe 25:00:00 wird umgewandelt in [01]:00:00 ist, weil es keine 25 Stunden an einem Tag gibt, so wird 25 zu 1h konvertiert. Datum ist nicht dasselbe wie Dauer.

Hoffe, dass hilft

+0

Ich verstehe, warum es 01 wurde, aber ich wollte wissen, wie man das Format als Dauer einstellt, werde ich Ihren Code versuchen. – Irindul

Verwandte Themen