AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Problem mit MonthOf

Ein Thema von SvB · begonnen am 19. Okt 2012 · letzter Beitrag vom 25. Okt 2012
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#11

AW: Problem mit MonthOf

  Alt 20. Okt 2012, 10:57
@Popov

Das Problem tritt ja unter dem Jahr auf, da der Monat auch mitten in der Woche enden/beginnen kann.
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#12

AW: Problem mit MonthOf

  Alt 20. Okt 2012, 12:22
Grade nochmal drüber nachgedacht ... das müßte doch soweit stimmen?
Delphi-Quellcode:
J := YearOf (EncodeDateWeek(Jahr, Woche, 4));
M := MonthOf(EncodeDateWeek(Jahr, Woche, 4));
$2B or not $2B

Geändert von himitsu (20. Okt 2012 um 12:24 Uhr)
  Mit Zitat antworten Zitat
SvB

Registriert seit: 21. Okt 2004
Ort: Eckenroth
426 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#13

AW: Problem mit MonthOf

  Alt 23. Okt 2012, 20:50
Das mit dem Kalender ist nicht so einfach. Den korrekten Monat einer KW zu erhalten ist so eine Sache und wie ihr beschrieben habt eigentlich gar nicht möglich, wenn die KW über zwei Monate geht.
Ich habe hierzu den Kunden noch mal gefragt wie er es denn gerne haben möchte. Wenn ich die Antwort habe, dann gebe ich noch mal über den aktuellen Status Bescheid.

In irgendeinem Excel-Forum oder Blog gabs eine Funktion, die wir umgeschrieben haben.
Delphi-Quellcode:
function GetMonatFromKW(Jahr, KW: String): String;
var
  tage: Int16;
  Date, Date2: TDate;
  wochentag, wochentag2: word;
  year, month, day: word;
begin
  // Was für ein tag ist der 1.1.xxxx
  Date := StrToDate('01.01.' + Jahr);
  wochentag := DayOfWeek(Date);
  // Was für ein Tag ist der 31.12.xxxx
  Date2 := StrToDate('31.12.' + Jahr);
  wochentag2 := DayOfWeek(Date2);
  // Wenn der erste oder letzte Tag eines Jahres ein Donnerstag ist
  // dann hat das Jahr 53 KWs
  if (wochentag = 5) OR (wochentag2 = 5) then begin
    // Alle außer KW 53 werde ignoriert und normal berechnet
    if KW = '53then begin
      Result := '12';
      Exit;
    end;
  end;
  // Anzahl der Tage seid Anfang des Jahres
  tage := StrToInt(KW) * 7;
  tage := tage - ((wochentag));
  // Zum Datum hin rechnen
  Date := Date + tage;
  // Monat auslesen und zurückgeben
  DecodeDate(Date, year, month, day);
  Result := inttostr(month);
end;
Leider funktioniert diese Berechnung aber auch nicht ganz, ich hätte bei manchen Ergebissen etwas anderes gesagt.
Warten wir mal ab, was der Kunde sagt.
Sven

Alle sagen, das geht nicht. Da kam einer, der wusste das nicht und hat es gemacht.
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#14

AW: Problem mit MonthOf

  Alt 23. Okt 2012, 20:52
Klingt vernünftig, egal wie er entscheidet, Du bist aus dem Schneider ....
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
SvB

Registriert seit: 21. Okt 2004
Ort: Eckenroth
426 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#15

AW: Problem mit MonthOf

  Alt 23. Okt 2012, 21:05
Ich habe auch noch folgende Infos gefunden:
http://de.wikipedia.org/wiki/Kalende...#Kalenderwoche
http://de.wikipedia.org/wiki/ISO_8601
http://de.wikipedia.org/wiki/DIN_1355-1
http://guest.engelschall.com/~sb/dow...mg/DIN1355.jpg

Hier gibt es keine eindeutige Erklärung ob eine KW einem Monat zugeordnet werden kann. Es ist nur das Jahresende, bzw. der Jahresanfang geregelt.
Sven

Alle sagen, das geht nicht. Da kam einer, der wusste das nicht und hat es gemacht.
  Mit Zitat antworten Zitat
Popov
(Gast)

n/a Beiträge
 
#16

AW: Problem mit MonthOf

  Alt 23. Okt 2012, 22:09
Hier gibt es keine eindeutige Erklärung ob eine KW einem Monat zugeordnet werden kann. Es ist nur das Jahresende, bzw. der Jahresanfang geregelt.
Kann er auch nicht, KW ist eben KW und nicht Monat. Ich kenne auch solche Kunden die ihre ganz wichtigen Tabellen ganz primitiv von Hand mit Excel gepflegt haben und wo der Mensch Entscheidungen treffen mußte und auch gemacht hat. Und wer behauptet, dass man jede Tabelle in eine Datenbank übernehmen kann, der lügt. Denn in Excel ist es möglich in der Spalte 5 mal den Preis, mal die Farbe und mal das Lieferdatum einzutragen. Der Mensch ist flexibel und kann etwas mit den Daten anfangen. Aber übertrage mal die alten Daten der letzten 10 Jahre, mit 250 Tausend Datensätzen, in eine Datenbank. Vor allem wenn in der gleichen Spalte immer was anderes steht.

Und nun ärgere ich mich, da ich vor drei Tagen eine Funktion geprogt habe bei der flexibel per Schalter entscheiden werden konnte ob das vorherige Jahr/Monat oder das nächste Jahr/Monat genommen werden soll. Löste zwar nicht das Problem zu welchem Monat die KW gehörte, aber man konnte per Schalter zwischen beiden Möglichkeiten wählen. Und weil ich dachte, dass das Problem gelöst war, habe ich es gelöscht.
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#17

AW: Problem mit MonthOf

  Alt 23. Okt 2012, 22:59
Ich habe auch Großkunden die ob dieses Problems verschieden Auswertungen fahren (JKW/JM/JQ) sauber kann das Ganze nur werden wenn an dem Satz ein Datum(d.m.y) hängt.
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
SvB

Registriert seit: 21. Okt 2004
Ort: Eckenroth
426 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#18

AW: Problem mit MonthOf

  Alt 25. Okt 2012, 00:30
Kunde hat jetzt entschieden:
1. im ersten Schritt soll eine KW dem Monat zugeordnet werden, in dem sich die meisten Tage des entsprechenden Monats befinden. Da müssen wir keine großen Anpassungen durchführen.
2. in einem späteren Schritt soll alles so umgestellt werden, das es prozentual den Monaten zugeordnet wird, d.h. jedem Werktag werden 20% zugeordnet, Wochenenden werden nicht berücksichtigt. Entsprechend wird dann dem Monat zugeordnet. Beispiel: Mo und Di sind im Januar, Mi, Do und Fr sind im Februar, dann werden 40% in den Januar und 60% in den Februar gelegt.
Sven

Alle sagen, das geht nicht. Da kam einer, der wusste das nicht und hat es gemacht.
  Mit Zitat antworten Zitat
Popov
(Gast)

n/a Beiträge
 
#19

AW: Problem mit MonthOf

  Alt 25. Okt 2012, 01:00
Das ist eine Aussage. Aber ich würde das nicht in einen späteren Schritt packen, sondern direkt umsetzten.

Aber trotzdem eine Frage: die 1. volle Woche in einem neuen Jahr, dessen Montag am 4. Januar anfängt, ist das für den Kunden nun 1. KW oder schon die 2. KW. Denn eigentlich ist es die 1. KW, aber der letzte Monat des letzten Jahres hat vier Werktage der Woche.
  Mit Zitat antworten Zitat
SvB

Registriert seit: 21. Okt 2004
Ort: Eckenroth
426 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#20

AW: Problem mit MonthOf

  Alt 25. Okt 2012, 01:18
1. Variante ist eine Funktion mit ca. 20 Zeilen anzupassen, das mache ich für den Kunden kostenlos und müsste relativ schnell geändert sein.
2. Variante muss ich dem Kunden noch klar machen, dass er auch dafür was zahlen muss, denn hier habe ich etwas mehr Aufwand.

Zu Deiner Frage: dieser Fall tritt das nächste mal im Jahr 2016 auf. Da die das so haben wollen, wie es im Kalender steht, würde ich sagen, dass das KW 1 ist. Die letzte KW in 2015 ist die KW 53 und das bekommt der Benutzer auch zur Auswahl.
Ich denke, dass sollte kein Problem werden. Bis dahin habe ich aber bestimmte Variante 2. schon umgesetzt.
Sven

Alle sagen, das geht nicht. Da kam einer, der wusste das nicht und hat es gemacht.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:05 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz