Jump to content

Datum berechnen...


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Hallo ich versuche gerade eine Zeitberechnung zu schreiben, die mir die Tage berechnet vom aktuellen Zeitpunkt, bis zu einem Zeitpunkt X außgenommen der dazwischenliegenden Samstage und Sonntage.

 

Ich möchte mir damit das stressige Rumrechnen bei Restores ersparen und will das jetzt mit VBS lösen.

 

Ich unterscheide zwischen 2 Bereichen. In einem wird 24/7 gesichert (da is es kein Thema) und dem Bereich in dem nur weekdays gesichert wird.

 

Aber bei dem rausrechnen der Sams- und Sonntage komm ich grad nich weiter...

 

On Error Resume Next

 

OU = Inputbox ("Geben Sie an ob es sich um ein YYY oder XXX-Projekt handelt. Mögliche Eingaben sind: YYY oder XXX")

 

If OU = "XXX" then

DateRestore = InputBox ("Geben Sie das gewünschte Restoredatum im Format DD.MM.YYYY ein")

Today = Now

DateToday = FormatDateTime (Today, vbShortDate)

MsgBox DateToday

 

ElseIf OU = "YYY" then

DateRestore = InputBox ("Geben Sie das gewünschte Restoredatum im Format DD.MM.YYYY ein")

Today = Now

DateToday = FormatDateTime (Today, vbShortDate)

Diff = DateDiff ("d", DateRestore, DateToday)

nightly = (Diff)

Text = "Bitte sichern Sie den Stand sv.nightly." & nightly & " zurück"

MsgBox Text

End if

Link zu diesem Kommentar

Ne komm damit irgendwie nich so recht klar, hab mittlerweile aber mal weitergeschrieben...

 

On Error Resume Next

'Abfrage für welchen Bereich gerechnet werden soll

OU = Inputbox ("Geben Sie an ob es sich um ein YYY oder XXX-Projekt handelt. Mögliche Eingaben sind: YYY oder XXX")

'Abfrage für XXX


If OU = "XXX" then 
  DateRestore = InputBox ("Geben Sie das gewünschte Restoredatum im Format DD.MM.YYYY ein")
  Today = Date
  Diff = DateDiff ("d", DateRestore, Today)
  nightly = (Diff)

'Vorbereitung für Loop

  DateRandom = Today								'Initialisiere Variablen
  SunSaturdays = 0									'Initialisiere Variablen

  Do
     DateCheck = weekday (DateRandom)      		'lese die RandomVaraible aus und übergebe an DateCheck
  if DateCheck = 1 then							'Prüfe ob es sich um einen Sonntag handelt
  SunSaturdays + 1								'Erhöhe den Zähler
  ElseIf DateCheck = 7 then						'Prüfe ob es sich um einen Samstag handelt
  SunSaturdays + 1								'Erhöhe den Zähler
  DateRandom = DateAdd ("d", -1, DateRandom)	'Zähle um einen Tag zurück
  End If

  Loop Until DateCheck = DateRestore



  FinalRestoreDate = nightly - SunSaturdays
  Text = "Bitte sichern Sie den Stand sv.nightly." & FinalRestoreDate & " zurück"
  MsgBox text

ElseIf OU = "YYY" then
  DateRestore = InputBox ("Geben Sie das gewünschte Restoredatum im Format DD.MM.YYYY ein")
  Today = Now
  DateToday = FormatDateTime (Today, vbShortDate) 
  Diff = DateDiff ("d", DateRestore, DateToday)
  nightly = (Diff)
  Text = "Bitte sichern Sie den Stand sv.nightly." & nightly & " zurück"
  MsgBox Text
End if

Link zu diesem Kommentar
Ne komm damit irgendwie nich so recht klar, hab mittlerweile aber mal weitergeschrieben...

 

Hallo,

 

hat ein wenig länger gedauert, aber heute hatte ich auf der Zugfahrt ein wenig Zeit...

 

wie wärs mit folgendem...

 

'Abfrage für welchen Bereich gerechnet werden soll

OU = Inputbox ("Geben Sie an ob es sich um ein YYY oder XXX-Projekt handelt. Mögliche Eingaben sind: YYY oder XXX")

'Auswahl
Select Case UCase(OU)

Case "XXX" 
  DateRestore = InputBox ("Geben Sie das gewünschte Restoredatum im Format DD.MM.YYYY ein")
  Today = Date
  'Jetzt müssen wir erstmal das Restoredate verschieben, wenn es sich um einen Sa oder So handelt.
  Select Case Weekday(Daterestore, vbSaturday)
    Case 2
  	   Daterestore = DateDiff("d", 3, Daterestore)
    Case 1
      Daterestore = DateDiff("d", 2, Daterestore)
    Case Else
  End select  
  Diff = DateDiff ("d", DateRestore, Today)
 'msgbox cDate(DateRestore)
  DateRandom = Today								'Initialisiere Variablen
  SunSaturdays = Fix(Diff/7) * 2 ' Ganze Wochen enthalten immer einen Sa + So 
   'MsgBox SunSaturdays &" Sa +So durch komplette Wochen"
  Rest_Tage = Diff Mod 7 'Wie sieht es mit Sa +So in der nicht kompletten Woche aus
  'MsgBox Rest_Tage &" Tage nach Modulo"
  Tag_heute = Weekday(DateRandom, vbSaturday)
  If Rest_Tage - Tag_heute >= 0 Then SunSaturdays = SunSaturdays + 2
  FinalRestoreDate = diff - SunSaturdays
  Text = "Bitte sichern Sie den Stand sv.nightly." & FinalRestoreDate & " zurück"
  MsgBox text

Case "YYY"
  DateRestore = InputBox ("Geben Sie das gewünschte Restoredatum im Format DD.MM.YYYY ein")
  Today = Now
  DateToday = FormatDateTime (Today, vbShortDate) 
  Diff = DateDiff ("d", DateRestore, DateToday)
  nightly = (Diff)
  Text = "Bitte sichern Sie den Stand sv.nightly." & nightly & " zurück"
  MsgBox Text
Case Else

End Select

 

Gruß

 

Dirk

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...