C#’da Zaman ve Tarih Uygulamaları,Timer Kullanımı


Bu derste C# da kullanılan saat ve tarih formatlarından biraz bahsedip ufak bir uygulama ile aradaki farkları inceleyeceğiz. Bir de timer’ın kullanımından bahsedeceğim.

Öncelikle Visual Studio’yu açıp yeni bir form oluşturuyoruz.

10 tane sola 10 tane de sağa resimdeki gibi label ekliyoruz. İsterseniz sadece 10 tane de kullanabilirsiniz , ben görsel açıdan düzgün olması için 20 tane kullandım. Bir de button ekliyoruz.


Buradaki amaç butona tıkladığımızda label’larda C# da bulunan farklı zaman kodlarını çalıştırmak.
Şu kodları butonun Click event’ine yazıyoruz.

label1.Text = Convert.ToString(DateTime.Now.Day); //sistem tarihinden günü alır
label2.Text = Convert.ToString(DateTime.Now.Month);//ayı alır
label3.Text = Convert.ToString(DateTime.Now.Year);//yılı alır
label4.Text = Convert.ToString(DateTime.Now.Hour);//saati alır
label5.Text = Convert.ToString(DateTime.Now.Minute);//dakikayı alır
label6.Text = Convert.ToString(DateTime.Now.Second);//saniyeyi alır
label7.Text = DateTime.Now.ToLongDateString();// sistem tarihini uzun biçimde alır
label8.Text = DateTime.Now.ToShortDateString();//kısa biçimde alır
label9.Text = DateTime.Now.ToLongTimeString();// sistem saatini uzun biçimde alır
label10.Text = DateTime.Now.ToShortTimeString();//kısa biçimde alır

Convert.ToString(DateTime.Now.Month) Bu kodda DateTime.Now ile şimdiki zamanı yani sistem zamanını alırız ve Month da ise sadece şuan ki ayı çekerek string’e çeviririz yani metine. Bunu daha sonraki derslerde açarak anlatacağım şimdilik sadece metine dönüştürmek içn kullandığımızı söylemek yeterli. Month yazarak ayı çektiğimiz gibi Year, Hour, Minute, Second veya milisecond gibi diğer zaman kavramlarınıda tek başına kullanabiliriz.
DateTime.Now.ToLongDateString() Bunda ise şuanki tarihi ToLongDateString() metodu ile uzun biçimde çekeriz yani 10 mart 2009 salı şeklinde. ToLongDateString() yerine aynı şekilde kısa tarih, uzun saat ve kısa saati de alabiliriz.

Şimdi Timer’dan biraz bahsedeyim. Timer’ı toolbox’tan(yada dan) bulabilirsiniz. Aynı forma bir tane sürükleyip bırakabilirsiniz. Fakat bıraktığınızda bir buton gibi formun üzerinde bulunmaz. Timer bir zamanlayıcı olduğunda formun arkaplanında çalışır. Timer’ın şimdilik birkaç gerekli özelliğinden bahsedeceğim:
Enabled özelliğinde türkçe karşılığı etkinleşmiş demektir. İçerisinde sadece iki tane şeçim vardır True = açık demek False = kapalı. Yani Timer’ı çalıştığını belirtmek için gerekli olan özellik.
Interval ise Milisaniye cinsinden olarak Timer’ın kaç zamanda bir işlem yapacağını belirleyen özelliktir.
Bu iki özellik yapacağımız program için şimdilik yeterlidir.

Forma sürükledikten sonra timerın event bölümünde görüceğiniz üzere sadece bir tane olayı vardır. O da Tick‘tir. Bu olayı türkçeye timerın tetiklenmesi şeklinde çevirebiliriz sanırım. Yani Intervalıne yazdığınız sürede bir Tick in içerisindeki kod çalışır. Örnekte daha iyi anlaşılacaktır.
Şimdi timerın Tick’ine Butona yazdığımız kodların aynısı kopyalayıp çalıştırıyoruz. Tabii ki timerin özelliklerinden Enabled’ı true yapmalıyız ki çalışabilsin. Intervalini de 1000 yapabilirsiniz bu 1 saniye ye eşit gelecektir.

Artık programımızdaki label’ların butona basmadan aktif biçimde değiştiğini görebilirsiniz.
İsterseniz aynı kodları görsellik için formun Load Olayına da kopyalaabilirsiniz. Bu kullanıcı programı açtığında label yazıları yerine zamanları görebilir

Reklamlar

21 comments on “C#’da Zaman ve Tarih Uygulamaları,Timer Kullanımı

    • Anlaşılabilir ve uygulanabilir olmasına sevindim, sıkıcı olabileceğini düşünmüştüm…

  1. bn lise son sınıf öğrencsiyim kendi hocamız bile bu kadar iyi anlatmıyo 🙂 helal olsun usta desem yeridir bn visual basic de bir çok işlemi yapıyorum ama c# ta tıkandım kaldım professionel olduğu için veya basic e alışıtığım için de ola bilir çok sağol dönem ödevim için çok iyi oldu saat tarih 🙂 eline emeğine sağlık ustam başarılarının devamını diliyorum

    • Estağfurullah, Usta olmak için daha çok yol var, yinede övgüleriniz için teşekkür ederim. Elimden geldiğince anlatmaya çalışıyorum, bir faydam dokunuyorsa ne mutlu bana. Bu yorumlar sayesinde vakit buldukça birşeyler yazmaya çalışıyoruz 🙂 . Eğer takıldığınız yerler de olursa çekinmeden sorabilirsiniz. Yada yardımım gereken farklı bir konuda. Kolay gelsin…

  2. s.a güzel bir uygulama ellerinize saglık .

    ben timerin tickinin 1 hafta ve ya 1 gün 2 gün gibi tetiklenmesini istiyorum

    invertale nasıl deger atamalıyım.

    yardımcı olursanız sevinirim.

    bide bu degerler atandıktan sonra program kapalı iken timer nasıl kontrol edilcek

    yani 1 hafta sonra tick nasıl tetikleriz.

    • Maalesef timer sadece uygulama açık iken çalıştırılabilir. Farklı yöntemler uygulanabilir fakat timer ile imkansız.

  3. gayet güzel akıcı analatım için teşekkürler mantığı kavramak isteyenler için neden TİCK ine o kodları yazıyoruz…intervalini 1000 nedn yaptık farklı yapsaydık ne olurdu açıklarsanız çok daha güzel olur

    • Yorumunuz için teşekkürler. Sanırım yazının tamamını okumadınız.

      “Forma sürükledikten sonra timerın event bölümünde görüceğiniz üzere sadece bir tane olayı vardır. O da Tick‘tir. Bu olayı türkçeye timerın tetiklenmesi şeklinde çevirebiliriz sanırım. Yani Intervalıne yazdığınız sürede bir Tick in içerisindeki kod çalışır. Örnekte daha iyi anlaşılacaktır.
      Şimdi timerın Tick’ine Butona yazdığımız kodların aynısı kopyalayıp çalıştırıyoruz. Tabii ki timerin özelliklerinden Enabled’ı true yapmalıyız ki çalışabilsin. Intervalini de 1000 yapabilirsiniz bu 1 saniye ye eşit gelecektir.”

      Zaten postta açıklama yapmışım. Eğer bunun dışında sorununuz varsa cevaplayabilirim… Tick’e yazılması durumu da kodu verdiğimiz sürede bir tekrar çalıştırabilmek.

  4. Oncelıkle Tesekulerler bi sorum olucak bı Text’e saati ve dakikayi saniyeyi gostermek ıstıorum tek tek oldugu takdırde en son yani saniyeyi atıyor Text’e ?

  5. bir soru sorucam.Mesela kullanıcı combobox ın içeridinde yer alan dakikalardan birisini seçiyor.O dakikayı seçtikten itibaren “dk ve sn” geriye saymaya başlıyor.saniye sıfırlandığında 00:00 yazmasını istiyorum.textbox.text kısmında görünmesi için hangi kod yazılır?

    • combobax tan dk seçtirdiğin zaman seçilen değeri timer’ın intervalini 1dk olarak ayarlayıp bunu tick event’ine döngü ile her 1 dk da bir bi eksilterek ekrana yazdırabilirsin.

      • paylaşımınızdan bu kadar uzun süre geçmesine ragmen hala faydalanıyoruz teşekkür ederim. ben bir şey sormak istiyorum. ben projeme bir tane buton koydum ve o yenileme işlemini yapıyor. Veri tabanındaki dosyaları kontrol ediyor. ben o butona basmadan timer ile kendini bu işi yapsın istiyorum. tick olayını nereye koymalıyım

      • Rica ederim, faydalı oluyorsa ne mutlu bana, Timer’ın tick event’ine button_click için yazdığın kodları yani yenleme kodlarını yazıp belirli bir süre ayarladığın zaman zaten o sürede bir yenileme işlemi yapmış olursun.

  6. admin kardeş c# puzzle oyunu yapıyorum takıldığım bikaç yer var bu zaman ile ilgili yardım edebilirmisin

  7. meraba. benim proje ödevim de kyk öğrncilerini ele alan bi program yapıyorum c# ve sql i kullanıyoruz . öğrencini kayıt tarihi ve bitiş tarihini yazmak istiyorum olmuyor yardımcı olabilirmisiniz?
    şuan ki yaptıklarım bu ama tarihi yapamıyorum ve sql e kayıtı aktaramıyorum .
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    using System.Data.SqlClient;
    namespace WindowsFormsApplication5
    {
    public partial class Form1 : Form
    {
    public Form1()
    {
    InitializeComponent();
    }
    SqlConnection bağlantı = new SqlConnection(“Data Source=CASPER-NB\\SQLEXPRESS;Initial Catalog=deneme;Integrated Security=true”);

    private void button1_Click(object sender, EventArgs e)
    {
    DateTime.Now.ToShortDateString();
    if (bağlantı.State == ConnectionState.Closed) bağlantı.Open();
    SqlCommand komut = new SqlCommand();
    komut.CommandText = “insert into ögrenci(adi,soyadi,tc_kimlik,adres,yurt_giris_yili,yurt_cikis_yili,önceligi,blok) values(‘” + textBox1.Text + “‘,'” + textBox2.Text + “‘,'” + textBox3.Text + “‘,'” + textBox4.Text + “‘,'” + comboBox3 + “‘,'” + comboBox4.Text + “‘,'” + dateTimePicker1.Value.ToString() + “‘,'” +dateTimePicker2.Value.ToString() + “‘)”;
    komut.Connection = bağlantı;
    komut.ExecuteNonQuery();
    }}}

  8. hocam iyi geceler bir sorum olacaktı.
    vardiye sistemini if kullanarak nasıl yapabilirim ?
    açıklama : sabah 08:00 de iş başı yapan bi adamın 17:00 de vardiyesi bitiyor ve 17:00 de vardiye si olana devrediyor .
    yardımcı olurmusunuz…

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Google+ fotoğrafı

Google+ hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Connecting to %s