Zum Hauptinhalt springen
Weil einfach - produktiver ist

Der Daten Spezialist

Konvertieren Sie die Daten mühelos zwischen verschiedenen Formaten ohne Programmierkenntnisse dank Visual Designer. Effizient und super einfach.
Flowheater Chart

Kalenderwoche in Datum umsetzen

Mehr
8 Jahre 4 Monate her #2761 von Mueck
Kalenderwoche in Datum umsetzen wurde erstellt von Mueck
Hallo zusammen,
aktuell haben wir in einem Datenfeed die Angabe der Kalenderwoche stehen wie z.B. für diese Woche: 2816
Damit können die meisten Systeme jedoch nichts anfangen und ich möchte deshalb die Kalenderwoche in ein Datum umwandeln. Denkbar wäre die Wahl zwischen 1. (Montag) und letztem (Freitag) Wochentag. Mit dem Heater AddDays könnte man dann ja noch, falls erforderlich, Zeit hinzufügen.
Gibt es dafür eine Lösung?

Viele Grüße
Helmut Mueck

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Mehr
8 Jahre 4 Monate her - 8 Jahre 4 Monate her #2763 von FlowHeater-Team
FlowHeater-Team antwortete auf Kalenderwoche in Datum umsetzen
Hallo Herr Mueck,

dafür benötigen Sie ein kleines Skript für den .NET Script Heater .

Das Skript gibt das Datum (jeweils Montag) der Kalenderwoche des angegebenen Jahres zurück und benötig dazu zwei Eingangsparameter.
  1. Die Kalenderwoche

  2. Das Jahr, 4 Stellig. So ist das Skript etwas flexibler einsetzbar

Im Anhang finden Sie ein kleines Beispiel wie es verwendet werden kann. Um für Ihren Fall eine 4-stellige Jahreszahl zu erhalten wurde im Beispiel der String Append Heater verwendet um die „20“ vor der zweistelligen Jahres anzufügen.

Wenn Sie anstatt Montag das Datum vom Freitag der Kalenderwoche haben möchten können Sie dies über den AddDays Heater + 4 Tage erreichen. Ist ebenfalls im Beispiel enthalten.

Wichtig: Damit das Skript funktioniert müssen Sie in den Eigenschaften des .NET Script Heater auf dem Reiter erweitert unter „Usings/Imports“ am Ende folgende Zeichenfolge angeben, siehe Screenshot.



Dateianhang:

Dateiname: datum-aus-...oche.zip
Dateigröße:2 KB


C# .NET Skript
Code:
public object DoWork() { if (InValues.Length != 2) throw new Exception("zwei Eingangsparameter erwartet!"); // 1. Parameter = Wochen int weeks = (int)InValues[0].GetInt(); // 2. Parameter = Jahr int year = (int)InValues[1].GetInt(); // zuerst den 1. Montag des Jahres berechnen CultureInfo currentCulture = CultureInfo.CurrentCulture; Calendar calendar = currentCulture.Calendar; DateTime dt = new DateTime(year, 1, 1); while (true) { int i = calendar.GetWeekOfYear(dt, System.Globalization.CalendarWeekRule.FirstFullWeek, DayOfWeek.Monday); if (i == 1) break; dt = dt.AddDays(1); } // auf das Datum der 1. Kalenderwoche des Jahres die Wochen addieren und zurückgeben return calendar.AddWeeks(dt, weeks - 1); }

gruß
Robert Stark

Wurde Ihre Frage damit beantwortet? Bitte geben Sie ein kurzes Feedback, Sie helfen damit auch anderen die evtl. ein ähnliches Problem haben. Danke.
Letzte Änderung: 8 Jahre 4 Monate her von FlowHeater-Team.

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Mehr
8 Jahre 4 Monate her #2766 von Mueck
Mueck antwortete auf Kalenderwoche in Datum umsetzen
Hallo Herr Stark,

funktioniert einwandfrei! Vielen Dank für den Support.

Viele Grüße
Helmut Mück

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Mehr
7 Jahre 11 Monate her #2954 von Mueck
Mueck antwortete auf Kalenderwoche in Datum umsetzen
Hallo Herr Stark,
ich hole dieses Thema noch einmal hervor, weil sich jetzt eine weitere, aber veränderte Anforderung ergeben hat. Read und Write Seite ist ein Textadapter.
In dem Feld liefkw können drei verschiedene Angaben stehen:

1. Eine 0, wenn der Artikel nicht lieferbar ist und der Liefertermin nicht bekannt ist
2. Die Lieferwoche in Form von z.B. 1650 (KW 50 im Jahr 2016)
3. Feld ist leer

Jetzt soll die 0 übertragen werden und das leere Feld soll leer bleiben. Die Lieferwoche wird mit dem .NET Script Heater in ein Datum umgerechnet und übertragen werden, was ja bereits funktioniert. Wie gehe ich am besten vor, um die o.a. Punkte 1. und 3. richtig einzubinden?

Viel Grüße
Helmut Mück

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Mehr
7 Jahre 11 Monate her #2955 von FlowHeater-Team
FlowHeater-Team antwortete auf Kalenderwoche in Datum umsetzen
Hallo Herr Mück,

Sie benötigen dazu eine vorgelagerte IF-THEN-ELSE Bedingung die im Fall „=0“ oder „= Leer (Empty)“ den Ursprungswert durchleitet. Im Anhang habe ich das Beispiel dementsprechend angepasst.

Weitere Beispiele zum IF-THEN-ELSE Heater finden Sie hier

Dateianhang:

Dateiname: datum-aus-...he-2.zip
Dateigröße:2 KB



gruß
Robert Stark

Wurde Ihre Frage damit beantwortet? Bitte geben Sie ein kurzes Feedback, Sie helfen damit auch anderen die evtl. ein ähnliches Problem haben. Danke.

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Mehr
7 Jahre 11 Monate her #2956 von Mueck
Mueck antwortete auf Kalenderwoche in Datum umsetzen
Hallo Herr Stark,
natürlich funktioniert das wie beschrieben. Danke! Manchmal sieht man den Wald vor lauter Bäumen nicht.
Bei der Umrechnung der Lieferwoche in ein Datum erfolgt die Ausgabe in der Form: tt.mm.yyyy 00:00
Auf die 00:00 würde ich gern verzichten, weiß aber nicht an welcher Stelle im .netscript Heater ich schrauben muss?
Vermutlich hier, aber wie? DateTime dt = new DateTime(year, 1, 1);

Viele Grüße
Helmut Mueck

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Mehr
7 Jahre 11 Monate her - 7 Jahre 11 Monate her #2957 von FlowHeater-Team
FlowHeater-Team antwortete auf Kalenderwoche in Datum umsetzen
Hallo Herr Mück,

In dem Fall benötigen Sie noch einen String Format Heater der die Datums- und Zeitangabe in eine reine Datumsausgabe formatiert ausgibt. Das Beispiel wurde dementsprechend angepasst.

Dateianhang:

Dateiname: datum-aus-...he-3.zip
Dateigröße:3 KB


PS: Wenn Sie lieber Skript verwenden möchten müssten Sie die vorletzte Zeile mit dem „return“ austauschen in return calendar.AddWeeks(dt, weeks - 1).ToString("dd.MM.yyyy");

gruß
Robert Stark

Wurde Ihre Frage damit beantwortet? Bitte geben Sie ein kurzes Feedback, Sie helfen damit auch anderen die evtl. ein ähnliches Problem haben. Danke.
Letzte Änderung: 7 Jahre 11 Monate her von FlowHeater-Team.

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Mehr
7 Jahre 11 Monate her #2958 von Mueck
Mueck antwortete auf Kalenderwoche in Datum umsetzen
Hallo Herr Stark,
ich habe im Script den Eintrag bezüglich der Datumsausgabe geändert. Die Datumsausgabe erfolgt trotzdem mit 00:00. Dann habe ich zusätzlich den Format Heater verwendet. Nur dann ist die Ausabe wie gewünscht das Datum ohne Zeitangabe dahinter.

Jetzt ergibt sich noch das Problem, dass in dem Feld liefkw der Wert 9999 stehen kann. Den kann ich zwar mit der IF THEN ELSE Bedingung, wie benötigt, durchleiten, er wird aber durch das Script in das Datum 29.11.2100 umgerechnet. Vielleicht kann man im Script den Bereich bis zu einem bestimmten Jahr eingrenzen wie z.B. 3001 = 1. Kalenderwoche im Jahr 2030? Oder gibt es noch eine andere Lösung?

Viele Grüße
Helmut Mueck

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Mehr
7 Jahre 11 Monate her #2960 von FlowHeater-Team
FlowHeater-Team antwortete auf Kalenderwoche in Datum umsetzen
Hallo Herr Mueck,

was möchten Sie den mit dem Wert „9999“ tun?

Wenn Sie daraus ein spezielles Datum umwandeln möchten reicht es aus wenn Sie den Wert vorher mittels des String Replace Heater in die passende Jahres und Wochenzahl umwandeln/ersetzen.

Oder soll der Wert einfach wie bei 0 bzw. Leer 1:1 in den Ausgabe CSV Datei geschrieben werden? In dem Fall müssen Sie in der IF-THEN-ELSE Bedingung zusätzlich noch diesen Wert eintragen.

gruß
Robert Stark

Wurde Ihre Frage damit beantwortet? Bitte geben Sie ein kurzes Feedback, Sie helfen damit auch anderen die evtl. ein ähnliches Problem haben. Danke.

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Mehr
7 Jahre 11 Monate her #2964 von Mueck
Mueck antwortete auf Kalenderwoche in Datum umsetzen
Hallo Herr Stark,

vielen Dank für die, wie immer, hilfreichen Hinweise. Da der Shopprogrammierer noch andere Anpassungwünsche hatte, haben wir die Verwendung verschiedener Kennzeichen bereits in der WaWi geändert. Wir leiten also jetzt nur noch 0 und leer durch und rechnen die KW in ein Datum um und addieren noch Tage hinzu. Das klappt, dank Ihrer Hilfe, sehr gut. Danke!

Viele Grüße
Helmut Mueck

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Ladezeit der Seite: 0.343 Sekunden
FlowHeater Logo

FlowHeater - Der Daten Spezialist

Effiziente Datenintegration und Transformation mit FlowHeater - Ihre Lösung für nahtlosen Datentransfer.

Rechtliches

Support & Kontakt

Kontaktinformation

Telefon:
0951 / 99339792

E-Mail:
Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein.


Copyright © 2009-2024 by FlowHeater GmbH. Alle Rechte vorbehalten.