C# ile Otomatik Ders Zaman Çizelgesi Yapmak

Bu yazımızda C# ile Otomatik Ders Zaman Çizelgesi Yapma işlemini inceleyeceğiz. Bir form oluşturarak Ders Başlangıç saat ve dakikasını tutan iki Combobox, Ders Süresini dakika olarak gireceğimiz bir TextBox, Teneffüs Süresi için bir TextBox, Ders Sayısı için bir ComboBox ekledim. Tabloyu bir ListBox nesnesine yazdıracağız, ismini lbTablo olarak verdim.

Son olarak bir Hesapla  butonu ekleyerek ismini btnHesapla olarak verdim. Ders Saati Combobox'ını 7'den 20'ye kadar döngü ile Form_Load() olayında dolduruyoruz, aynı şekilde ders sakikasını da 0'dan 59'a kadar değerlerle dolduruyoruz. Ders Sayısı için de 1'den 10'a kadar değer girildi, bunu işlemi de yine Form_Load() olayında döngü ile yapabilirsiniz. Form_Load() olayını açmak için form üzerine çift tıklamanız yeterlidir.

Form Nesneleri
Nesne Name(Adı) Açıklama
ComboBox cbDersSaat Ders başlangıç saati
ComboBox cbDersDakika Ders başlangıç dakikası
TextBox txtDersSure Dakika olarak ders süresi
TextBox txtTeneffusSure Teneffüs süresi(dk)
ComboBox cbDersSayisi Ders Sayısı
Button btnHesapla Hesapla butonu
ListBox lbTablo Çizelgeyi gösterecek

Burada dikkat edeceğimiz nokta dakika 60'ı geçince aşağıdaki kod kısmından da görüldüğü gibi saat üzerine 1 ekliyoruz ve dakikayı mod 60'a göre ayarlıyoruz. Böylece dakika 0-59 arası değer alıyor. Döngümüz ders sayısı kadar dönüyor.

     for (int i = 1; i <= dersSayisi; i++)
            {
                yeniDak += dSure; //ders Süresini ekliyoruz
                if(yeniDak>=60)
                {
                    yeniDak = yeniDak % 60;
                    yeniSaat += 1;
                }


 
Kodun Tamamı

namespace MetodDersCizelgesi
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
 
        public static string sEkle(string deger){
           
            if (deger.Length == 1)
            {
                deger = "0" + deger;
            }
            return (deger);
 
        }
        
 
        private void Form1_Load(object sender, EventArgs e)
        {
            cbDersSayisi.SelectedIndex = 9;
            txtDersSure.Text = "40";
            txtTeneffusSure.Text = "10";
            lbTablo.Items.Clear();
            for (int i = 7; i <= 20; i++)
                cbDersSaat.Items.Add(i);
 
            cbDersSaat.SelectedItem = 8;
            for (int i = 0; i <= 59; i++)
                cbDersDakika.Items.Add(i);
            cbDersDakika.SelectedItem = 0;
        }
 
        private void btnHesapla_Click(object sender, EventArgs e)
        {
            lbTablo.Items.Clear();
            int dersSayisi = int.Parse(cbDersSayisi.SelectedItem.ToString());
           
            int tSure = int.Parse(txtTeneffusSure.Text);
            int dSure = int.Parse(txtDersSure.Text);
            int dBaslangicSaat = int.Parse(cbDersSaat.SelectedItem.ToString());
            int dBaslangicDakika = int.Parse(cbDersDakika.SelectedItem.ToString());
            
            string satir = "";
            satir = sEkle(dBaslangicSaat.ToString()) + ":" + sEkle(dBaslangicDakika.ToString());
            int yeniSaat=dBaslangicSaat, yeniDak=dBaslangicDakika;
            
            for (int i = 1; i <= dersSayisi; i++)
            {
                yeniDak += dSure; //ders Süresini ekliyoruz
                if(yeniDak>=60)
                {
                    yeniDak = yeniDak % 60;
                    yeniSaat += 1;
                }
                satir+="-"+ sEkle(yeniSaat.ToString()) + ":" + sEkle(yeniDak.ToString());
                lbTablo.Items.Add(satir); 
                yeniDak += tSure; //teneffüs süresi ekliyoruz
                if (yeniDak >= 60)
                {
                    yeniDak = yeniDak % 60;
                    yeniSaat += 1;
                }
                satir = "";
                satir += sEkle(yeniSaat.ToString()) + ":" + sEkle(yeniDak.ToString());
               
               
            }
 
 
        }
    }
}



Mutlu Kodlamalar,
15 Şubat 2022
Oğuzhan TAŞ
 
Bookmark and Share