Ayın kaçıncı haftası olduğunu bulan

Firebird ve Interbase veritabanları ve SQL komutlarıyla ilgli sorularınızı sorabilirsiniz. Delphi tarafındaki sorularınızı lütfen Programlama forumunda sorunuz.
Cevapla
Kullanıcı avatarı
naile
Admin
Mesajlar: 1873
Kayıt: 11 Haz 2003 10:11

Ayın kaçıncı haftası olduğunu bulan

Mesaj gönderen naile »

Ms Sql server da verdiğim tarihin içinde bulunduğu ayın kaçıncı haftası olduğunu bulan fonksiyon lazım. DATEPART ile yılın kaçıncı haftası olduğunu bulabiliyorum ama bana ayın kaçıncı haftası olduğu lazım, şimdi biraz uğraşsam bi fonksiyon yazarımda sonra uğraşıyorum uğraşıyorum hazır bişeyler buluyorum okadar zaman boşa gidiyor :) Belki hazır bir fonksiyon vardır diye sorayım dedim.
Teşekkürler şimdiden..
Kullanıcı avatarı
Kuri_YJ
Moderator
Mesajlar: 2248
Kayıt: 06 Ağu 2003 12:07
Konum: İstanbul
İletişim:

Mesaj gönderen Kuri_YJ »

Selamlar Naile,

O iş biraz karışık, muhtemelen MS'in de kafası basmadı yazamadı :) Ne dersiniz? :)

Şaka bir yana Eğer Server Side işlem değil ise Delphi'de DateUtils unitinde Weekofthmonth isimli bir fonksiyon ile işini gör aksi takdirde bir takım problemlerle karşı karşıya kalacaksın. Mesela tarih ayarlarında Haftanın günü olayı (Pazar mı, Pazartesi mi?) Ayrıca Haftanın günlerini veya başlangıçlarını hesaplarken Leap Year gibi bir takım kontroller koyman gerekecek.

Yani biraz uğraştırır gibi duruyor. Delphi'nin help'İnden bir alıntı yapacağım.
function WeekOfTheMonth(const AValue: TDateTime): Word; overload;
function WeekOfTheMonth(const AValue: TDateTime; var AYear, AMonth: Word): Word; overload;

Description

Call WeekOfTheMonth to obtain the week of the month represented by a specified TDateTime value. WeekOfTheMonth returns a value between 1 and 6.

AYear and AMonth return the year and month in which WeekOfTheMonth occurs. Note that these values may not be the same as the year and month of AValue. This is because the first week of a month is defined as the first week with four or more days in that month. Thus, if the first day of the month is a Friday, Saturday, or Sunday, the first one, two, or three days of the month are defined as belonging to the last week of the previous month. Similarly, if the last day of the month is a Monday, Tuesday, or Wednesday, then the last one, two, or three days of the month are defined as belonging to the first week of the next month.

Tip: To count weeks based on the weekday of the date/time value, use the NthDayOfWeek function instead. For example, if AValue represents a Saturday that is the first day of a month, WeekOfTheMonth returns 5 (or maybe 4), indicating the last week of the previous month, while NthDayOfWeek returns 1 AValue is the first Saturday in the month.
Note: WeekOfTheMonth uses the ISO 8601 standard definition of a week. That is, a week is considered to start on a Monday and end on a Sunday.
Yani bunun gibi bir takım kontrolleri gözden kaçırmamak gerekiyor :)

Kolay Gelsin.
Kuri Yalnız Jedi
Harbi Özgürlük İçin Pisi http://www.pisilinux.org/
Kullanıcı avatarı
naile
Admin
Mesajlar: 1873
Kayıt: 11 Haz 2003 10:11

Mesaj gönderen naile »

Ya abi nerden buldun bu mesajı, onu bişekilde halletim artık ben case kullandım, günü kontrol ederek kaçıncı hafta olduğunu buldurttum falan. Biraz kolayına kaçtım belki ama işe yaradı :D
Cevapla