Forum
Grundkurs
»Introduktion
»Snabbguide
»Komponenter
»Händelser
»Strängar
»Räkna med Delphi »Egna
typer
»Selektion
»Iteration
»Menyer
»Funktioner
»Arraystrukturer
Tips & Tricks
»Nya tips
»Blandat
»Databaser
»Filer
»Forms
»Grafik
»Internet
»Komponenter
»Matematik
»Multimedia
»Objekt/ActiveX
»Skrivare
»Strängar
»System
»Mest lästa tips
Artiklar
»Delphi och ADO
»Bygga en DLL
»Skapa en enkel rapport
»Hantera registret
»Enheter, units
»Klassen TCanvas
»Använd LookUp Controls
Nya
tips
Lägg
till tips
Delphilänkar
Gästbok
|
|
Kalkylera veckonummer
|
Kategori: Matematik
Inlagt: 2004-06-30
Läst: 1537
Inlagt av: Staffan Berg
|
Beskrivning |
Funktioner för kalkylerings av veckonummer m m
|
Kod |
function IsLeapYear( nYear: Integer ): Boolean; begin Result := (nYear mod 4 = 0) and ((nYear mod 100 <> 0) or (nYear mod 400 = 0)); end; function MonthDays( nMonth, nYear: Integer ): Integer; const DaysPerMonth: array[1..12] of Integer = (31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31); begin Result := DaysPerMonth[nMonth]; if (nMonth = 2) and IsLeapYear(nYear) then Inc(Result); end; function WeekOfYear( dDate: TDateTime ): Integer; var X, nDayCount: Integer; nMonth, nDay, nYear: Word; begin nDayCount := 0; deCodeDate( dDate, nYear, nMonth, nDay ); For X := 1 to ( nMonth - 1 ) do nDayCount := nDayCount + MonthDays( X, nYear ); nDayCount := nDayCount + nDay; Result := ( ( nDayCount div 7 ) + 1 ); end;
|
|
|