2017-05-07 3 views
-2

Der folgende PHP-Code, mit dem ein Prozess nur zwischen bestimmten Zeiten ausgeführt werden kann. Wie wäre das in GoLang?Lassen Sie von Sonntag bis Freitag laufen?

$curdate = date('Y-m-d'); 
$mydate=getdate(strtotime($curdate)); 
if ($mydate['wday'] === 0) { 
    if (date('H') < 15) { exit; }; // This is for 0 Sunday!!! 
} 
if ($mydate['wday'] === 5) { 
    if (date('H') > 19) { exit; }; // This is for 5 Friday!!! 
} 
if ($mydate['wday'] === 6) { 
    exit; // This is for 6 Saturday // 
} 

Antwort

4

Dies sollte das gleiche tun:

now := time.Now() 
day := now.Weekday() 
hr := now.Hour() 

if day == 0 { 
    if hr < 15 { os.Exit(0) } 
} 
if day == 5 { 
    if hr > 19 { os.Exit(0) } 
} 
if day == 6 { 
    os.Exit(0) 
} 

Wo ähnlich, kann jeden Tag durch eine ganze Zahl (0-6) dargestellt werden.

Beachten Sie, dass time verwenden und os Sie benötigen

import "time" 
import "os" 

the documentation Siehe etwa Golang Zeit mehr nennen.

+0

In gehen, wie würden Sie überprüfen, ob der Prozess bereits ausgeführt wird, wenn es aufgerufen wird, zu starten? Also würde der Prozess nicht mehr als eine laufende Instanz haben? – user2777145

+0

@ user2777145 Tut mir leid, aber du musst etwas recherchieren oder eine separate Frage stellen, da ich keine Ahnung habe – Bassie

+0

Kein Problem, meine Lösung ist ps | grep für den Prozess vor dem Starten des Prozesses, um zu verifizieren, dass er nicht ausgeführt wird. – user2777145

0

Schreiben Sie keinen PHP-Code als Go-Code. Schreiben Sie den Go-Code. Beispiel:

package main 

import (
    "os" 
    "time" 
) 

func main() { 
    now := time.Now() 
    hour := now.Hour() 
    switch now.Weekday() { 
    case time.Sunday: 
     if hour < 15 { 
      os.Exit(0) 
     } 
    case time.Friday: 
     if hour > 19 { 
      os.Exit(0) 
     } 
    case time.Saturday: 
     os.Exit(0) 
    } 
    // Do Something 
} 
+0

Ich bin in einer Schleife, bis ich auf die andere Seite des Datums/der Uhrzeit stoße. Also habe ich die Zeit angerufen. Jetzt mache ich einen Test von switch/case oder if. Nicht sicher, welcher der beste Weg wäre. switch/case ist schneller als mehrere wenn in der Hauptfunktion von go. – user2777145

Verwandte Themen