| |
|
|
- Page 1 - |
|
Sato Pinto | Hallo Allerseits
Weiss jemand ob das DateEdit control auch den Wochenzahl ausgibt oder bleibt nur die Möglichkeit das zu berechnen?
Gruss Sato |
|
|
| |
|
|
|
| |
|
- Page 1 - |
|
Sato Pinto | Hallo Jac
Danke per den Tip, aber ich glaube die DLL hat die Wochen Nummer Funktion nicht, oder ich habe es übersehen
Gruss Sato |
|
|
| |
|
|
|
Jörg Sellmeyer | Schau mal, ob Dir das hier weiterhilft: [...] und das: [...] |
|
|
| Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 26.09.2008 ▲ |
|
|
|
|
Thomas Freier | Oder der Kalender aus der MMJ-Quellcodesammlung: [...] |
|
|
| |
|
|
|
Sato Pinto | Hallo Von den genannten Lösungen funktioniert nur das Kalender mit den Wochennummern von der MMJ-Quellcodesammlung, doch sehe ich keine Möglickeit nur die Wochennummer daraus zu fischen. weiss jemand ob das Möglich ist?
Gruss Sato |
|
|
| |
|
|
|
Sato Pinto | Hallo Anscheinend ist die Wochennummer berechnung keine so leichte Sache. Habe ein wenig gegoogelt und diesen code in PowerBasic gefunden. Ist es Möglich es nach Xprofan umzusetzen? Fals es klappen sollte wird es bestimmt irgendwann auch per andere User gebräuchlich sein.
Gruss Sato KompilierenMarkierenSeparieren*******************************************************
* Function Julian - returns Julian Day Number (JDN) *
* Actually it counts days elapsed since "11/25/-4713" *
* (= Nov. 25, 4714 BCE) *
*******************************************************
FUNCTION Julian(BYVAL year AS LONG, _
BYVAL month AS LONG, _
BYVAL day AS LONG) AS LONG
LOCAL Days AS LONG, yearsBC AS LONG, yearsAD AS LONG
IF month < 3 THEN January or February?
month = month + 12 13th or 14th month ....
DECR year .... of prev. year
END IF
yearsBC = 4714 - 1 4713 BC thru 1 BC
yearsAD = year - 1 1 AD thru (year of date minus 1)
Days = INT((yearsBC + yearsAD) * 365.25) calculate days in years
Days = Days - (year 100) substract century leapdays
Days = Days + (year 400) re-add valid ones
Days = Days + INT(30.6 * (month - 1) + .2) days in months elapsed (+ adjustment)
FUNCTION = Days + day days in month of date
END FUNCTION
***********************************************
* Function DayOfWeek returns day of the week, *
* where Monday = 1 .... Sunday = 7 *
***********************************************
FUNCTION DayOfWeek(JDN AS LONG) AS BYTE
FUNCTION = JDN MOD 7 + 1
END FUNCTION
***********************************************************************
* Function WeekOne returns first day of first week for the given year *
* Note: This is only a helper function for WeekNumber *
***********************************************************************
FUNCTION WeekOne(BYVAL year AS LONG) AS LONG
LOCAL temp AS LONG, Thursday AS BYTE
Thursday = 4
temp = Julian(year, 1, 1) - 1 Dec. 31 of prev. year
DO
INCR temp
LOOP UNTIL DayOfWeek(temp) = Thursday until first Thursday of year is found
FUNCTION = temp - 3 first day of first week is a Monday
END FUNCTION
*********************************************************************
* Function WeekNumber returns ISO-proof weeknumber for a given date *
*********************************************************************
FUNCTION WeekNumber(BYVAL year AS LONG, _
BYVAL month AS LONG, _
BYVAL day AS LONG) AS BYTE
LOCAL FirstDay AS LONG, FinalDay AS LONG, ToDay AS LONG
LOCAL WkNumber AS BYTE
FirstDay = WeekOne(year)
FinalDay = WeekOne(year + 1) - 1
ToDay = Julian(year, month, day)
SELECT CASE ToDay
CASE < FirstDay it is week 52 or 53, but which one?
therefore we need week one of previous year as a starting point
FirstDay = WeekOne(year - 1)
CASE > FinalDay there is only one possibility: week nbr 1
FUNCTION = 1
EXIT FUNCTION
END SELECT
FUNCTION = ((ToDay - FirstDay) 7) + 1
END FUNCTION
FUNCTION PBMain() AS LONG
MSGBOX "Dec. 31, 1997 falls in week " & FORMAT$(WeekNumber(1997, 12, 31)) & $CRLF & _
"Jan. 1, 1999 in week " & FORMAT$(WeekNumber(1999, 1, 1))
END ef='./../../references-fonction/xprofan/function/'>FUNCTION
|
|
|
| |
|
|
|
Thomas Freier | Ist es das, was du brauchen kannst: infdatum.zip von [...] ? |
|
|
| |
|
|
|
Jörg Sellmeyer | Ich verstehe Dein Problem, ehrlich gesagt, nicht. Hier ist doch eine Funktion/Prozedur "Week" drin, die genau das macht, was Du suchst: [...] |
|
|
| Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 27.09.2008 ▲ |
|
|
|
|
Sato Pinto | Hallo Thomas
Vielen Dank, das ist genau was ich brauche. Hatte schon den Link besucht, habe es übersehen. Gerhard Putschalka Page ist eine Fundgrube. Auch ein besten Dank an Ihm
Gruss Sato |
|
|
| |
|
|
|
Sato Pinto | Hallo Jörg
Habe es getestet, aber komme damit nicht klar So wie es verstanden habe muss ich nach week einen datum eingeben. z.b week 28092008 Habe verschiedene Formate versucht: week "28-09-2008" oder week 20080928 aber keinen liefert ein richtiges Ergebnis. Mache ich was Falsch?
Gruss Sato |
|
|
| |
|
|
| |
|
- Page 2 - |
|
|
Jörg Sellmeyer | Die Prozedur erwartet (leider) das Datum im Format Date$(0): Hier kann mans sehen. if %PCount=0
dat$=date$(0)
endif
Damit erhälst Du ein Ergebnis: Print Week("01.01.2005") Mit: Print Week() wird das heutige Datum verwendet. Mit: Print Week(@DToC$("20070401")) kannst Du auch das Datenbankformat verwenden. Wie ist denn das Datumsformat auf Deinem PC? Wenn es von "01.01.2008" abweicht, müßte man die Routine mal umschreiben. |
|
|
| Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 27.09.2008 ▲ |
|
|
|
|
Sato Pinto | Hallo Jörg
Danke, klappt prima
Gruss Sato |
|
|
| |
|
|
|
Sato Pinto | |
|
| |
|
|