Anzahl der Arbeitstage in einem Monat berechnen [Duplikat]

8

Wie berechnet man Arbeitstage eines Monats? cal_days_in_month gibt einfach die Gesamtzahl der Tage in einem Monat zurück. Meine Aufgabe ist es, die Anzahl der Tage im Monat außer samstags und sonntags oder sonntags zu berechnen. Irgendeine Methode, um das zu finden?

    
Viswalinga Surya S 06.01.2013, 19:41
quelle

5 Antworten

10
%Vor%

In diesem Beispiel wird die Funktion date verwendet. Hinweis zum Parameter ignore: 0 ist Sonntag, ..., 6 ist Samstag.

    
Salman A 06.01.2013, 19:51
quelle
9

Kopieren der zweiten Antwort von: Anzahl der Wochentage in einem bestimmten Monat ermitteln

  

Sie müssen nicht jeden Tag im Monat zählen. Du kennst das schon   Die ersten 28 Tage enthalten 20 Wochentage, egal was passiert. Alles, was Sie zu tun haben   Bestimmt die letzten Tage. Ändern Sie den Startwert auf 29. Dann fügen Sie hinzu   20 Wochentage zu Ihrem Rückgabewert.

%Vor%

Dies sollte Ihr Problem lösen und ist in der Tat eine effiziente Lösung.

    
Amar 06.01.2013 19:50
quelle
3

Eine einfache (nicht so elegante) Antwort wäre einfach, einen Zeitstempel des ersten Tages im Monat zu erstellen, date () zu verwenden, um den physischen Namen des Monats zu erhalten, dann entweder umzuschalten oder zu bestimmen, ob es ein a ist Wochentag oder nicht.

%Vor%

Ausgabe

%Vor%

Ссылка

Ссылка

    
user1931103 06.01.2013 19:50
quelle
1

Mach einfach eine Google-Suche, Mann.

Für die Nachwelt, Ihren Algorithmus:

  • Erhalten Sie die Anzahl der Tage im Monat mit Datum ().
  • Beginnen Sie mit Tag (1), verwenden Sie mktime / gmmktime, um einen Epochenzeitstempel zu erstellen, und verwenden Sie dann date () um zu bestimmen, welcher Wochentag es darstellt.
  • Wiederholen Sie den Vorgang, bis Sie den ersten Arbeitstag (einen Montag) gefunden haben. Lass das "ich" sein.
  • Die aktuelle Zahl sei "t", deren Anfangswert (0) ist.
  • Sei j = i. Wo j ist weniger als (i + 5) - und weniger als die maximale Anzahl von Tagen in der Monat, Inkrementieren t. Inkrementieren um (2) (um die Wochenendtage zu überspringen) und wiederholen von Anfang dieser Zeile, bis "i" die maximale Anzahl von Tagen im Monat überschritten hat.
  • Wende Erfolg und Glück an und wiederhole vom Anfang bis zur Gesamtzahl der Arbeitstage ist (0).
Dustin Oprea 06.01.2013 19:54
quelle
0
%Vor%     
user669677 06.01.2013 20:25
quelle

Tags und Links