bir ay içerisindeki hafta sonlarını bulma

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
unalaygun
Üye
Mesajlar: 139
Kayıt: 27 Mar 2004 12:34
Konum: istanbul

bir ay içerisindeki hafta sonlarını bulma

Mesaj gönderen unalaygun »

merhaba arkadaşlar hepinize kolay gelsin ben bir puantaj programı yazmaya başlayacağım ama kafama takılan bir soru varki hemen soyleyım.


kullanıcı yıl bolumunden yılı:2004 ay kısmından AY:Ocak
gibi bir şeçim yaptığında otomatik olarak cumrtesi ve pazar günlerini bulmasını ve bu günlerin başlıklarını kırmızı yapmasını ve ayın kaç gün olduğunu bulmasını istiyorum acaba boyle bir şeyi nasıl yapabilirim yardımlarınız için şimdidien teşekürler kolay gelsin.....
derviş
selm@n
Kıdemli Üye
Mesajlar: 442
Kayıt: 01 Oca 2004 11:52
Konum: Adapazarı
İletişim:

Mesaj gönderen selm@n »

Merhaba hocam öncelikle aşağıdaki linki inceler iseniz bir çok sorunuza cevap olacaktır...

http://www.delphiturkiye.com/index.php? ... tetime.htm

kolay gelsin;
;)
unalaygun
Üye
Mesajlar: 139
Kayıt: 27 Mar 2004 12:34
Konum: istanbul

Mesaj gönderen unalaygun »

teşekürler çok sağolun en yakın zamanda inceleyip sonucu foruma yazacağım kolay gelsin
derviş
unalaygun
Üye
Mesajlar: 139
Kayıt: 27 Mar 2004 12:34
Konum: istanbul

Mesaj gönderen unalaygun »

merhaba hocam bu linkte vermiş olduğunuz fonksiyonları inceledim am tam işime yarayan bir şey bulamadım..


yapmak istediğimi anlatayım boylece daha netleştiriririz
ben 31 tane combobox koydum formuma ve bunların başlıklarının takvim ile aynı yürümesini istiyorum yani mesela 2005 ocak 1 hangi günü denk geliyor mesela pazartesine 2005 seçtiğinde yıl olarak aylardan da ocağı 1.günde pazartesi 2.salı vs yazmasını isityorum aslında tamamen takvim gibi ama nasıl yaparım bunu.
mont calendar içerisinden bilgi alabilirmiyim acaba
yada sadece hafta sonlarını yani cumartesi pazarı yazsın ...
derviş
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Mesaj gönderen aslangeri »

S.A.
anladığım kadarıyla yılı ve ayı seçtikten sonra comboboxlarda günleri göstermek istiyorsun.
yılı ve ayı seçtik. göster düğmesine bastık.

Kod: Tümünü seç

var
 mycb:TComponent;
  i:byte;
startdate:TDatetime;
begin
  startdate:=strtodate('01.01.2005');//sen bu değişkene değeri dinamik olarak atacaksın.
  for i:=0 to 30 do
  begin
      mycb:=findcomponent('ComboBox'+inttostr(i+1));
      if (mycb is tcombobox) then
      Begin
         (mycb as Tcombobox).text:=formatdatetime('dddd',startdate);
         startdate:=startdate+1;
      end;
  end;
end;
bu sana bir yol gösterebilir belki. hafta sonlarını bulmak için dayofweek functionunu kullanabilirsin.
Not: kodları denemedim ama mantığı daha önce kullandım.
Kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
unalaygun
Üye
Mesajlar: 139
Kayıt: 27 Mar 2004 12:34
Konum: istanbul

Mesaj gönderen unalaygun »

abilerim şimdi ben bir soru sormak istiyorum


ayın kaç gün çektiğini bulduruyorum
ayın başşlanıgıcınınıda bulduruyorum ve soyle bir dongu kuruyorum fakat sorun çıkıyor acaba yanlışmı yapıyorum
kodları bu şekilde yazacağım yanımda mevcut değil siz anlarsınız zaten..
pazartesini 1.gün kabul ettim

g:=dayof(ayınkacgüncektiği);
f:=(ayınbaslangıctarihi);

for i:=0 to g do
begin
if weekofdays((f))=6 then
begin
label1.color:=clred;
incday(f);

end
else
incday(f);

şimdi dongu bu kusura bakmayın bu şekilde yazdım ama nedense gun hep bir artıyor ama 31 günlük dongu oluyor....
kolay gelsin teşekürler...
derviş
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Mesaj gönderen aslangeri »

S.A.
* kodlarını CODE tagı içinde yazarsan daha anlaşılır olur.
döngüyü 0 dan başlatmışsın sanırım 1 den başlatman lazım.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
unalaygun
Üye
Mesajlar: 139
Kayıt: 27 Mar 2004 12:34
Konum: istanbul

Mesaj gönderen unalaygun »

peki ben orada
incday(f);

diyince


gün orda artıyormu yoksa soyle bir şeymi yazmam gerekiyor

f:=incday(f);


mi acaba abilerim
derviş
Kullanıcı avatarı
warder
Üye
Mesajlar: 255
Kayıt: 10 Mar 2004 04:59

Mesaj gönderen warder »

istediğiniz böyle bir şeye benziyor gibi...

Kod: Tümünü seç


     TDateTime Tarih;  // tarihe de ilk değer verilebilir
    while(Tarih != istediğinizTarih) {
        if (Tarih.DayOfWeek() == 7) || (Tarih.DayOfWeek() == 1)) { //7 : cumartesi
        istediğiniz işlemler...
        }
        Tarih++;
        Application->ProcessMessages();
    }


En son warder tarafından 09 Eki 2004 11:42 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
... Muhtaç olduğun kudret, damarlarındaki asil kanda mevcuttur!
Mustafa Kemal Atatürk...
unalaygun
Üye
Mesajlar: 139
Kayıt: 27 Mar 2004 12:34
Konum: istanbul

Mesaj gönderen unalaygun »

abilerim f:=incday(tarih) ile çözdüm ama ufak bir problem var oda artık yıl oayı galiba onuda halledicem insallah yardımlarınız için tşkler kolay gelsin...
derviş
Cevapla