19 Mayıs 2013 Pazar

C Sharp Uygulamalar Ceza Hesaplama Programı - DateTime Sınıfı İle Tarih İşlemleri



KONU : C Sharp Uygulamalar - C Sharp ( C# ) form ceza hesaplama programı. Datetime sınıfını kullanarak tarihler arası fark hesaplama. Foreach döngüsü kullanarak Textbox kontrollerinin özelliklerini güncelleme. Math sınıfını kullanarak yuvarlama yapma.





UYGULAMAYI İNDİR



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;

namespace C_Sharp_Form_Tarih_islemleri_Hesaplama
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            textboxTemizle();//textbox kutularını temizleme
           
            txtCeza.Enabled = false;
            
            // ceza kutusunu sadece program kullanabilir
            
            txtToplam.Enabled = false;
            
            // toplam kutusunu sadece program kullanabilir
        }

        /// Hesaplama butonuna tıklandığında gerşekleştirilecek işlemeler
        private void btnHesapla_Click(object sender, EventArgs e)
        {
            if (txtName.Text.Trim() == "")
            {
                MessageBox.Show("Lütfen bir malzeme ismi giriniz.", "Uyarı");
                return;//boş bir değer girildiyse işlem yapmadan çık
            }
            else if (txtTutar.Text.Trim() == "")
            {
                MessageBox.Show("Lütfen bir malzeme tutarını giriniz.", "Uyarı");
                return;//boş bir değer girildiyse işlem yapmadan çık
            }

            //datetime değişkenlerini tanımlama

            DateTime son_Odeme_Tarihi, odendime_Tarih;
            
            double fiyat = 0, fark = 0, ceza = 0;

            //ceza miktarını hesaplama. Try catch bloğu ile girilen tutar eğer 
            //tam sayı değilse oluşacak (exception) hatalar önlenir.

            try
            {
                fiyat = long.Parse(txtTutar.Text);
                son_Odeme_Tarihi = dateSonOdemeTarihi.Value;
                odendime_Tarih = dateOdemeTarihi.Value;

               TimeSpan ts =  odendime_Tarih - son_Odeme_Tarihi ;
               fark = Math.Round(ts.TotalDays);
            }
            catch (Exception hata)
            {
                //Hata verdirecek messagebox kutusu. Başlığında HATA yazsın. Bir tan Ok
                //butonu olsun ve icon olarak error ikonunu kullanmasını istiyorum. 
                
                MessageBox.Show("Bilgiler hatalı yazılmış." + hata.Message,"HATA",MessageBoxButtons.OK,MessageBoxIcon.Error);
            }


            //eğer ceza varsa bunu kullanıcıya göster
            
            if (fark > 0)
            {
                ceza = fark * fiyat * 2 / 1000;
                txtCeza.Text = ceza.ToString("#,#");
                txtToplam.Text = (fiyat + ceza).ToString("#,#");
             
                MessageBox.Show(fark + " gün geç ödendi." + txtCeza.Text + " TL ceza ödeyecek","GEç ödenme yaptınız. Ceza miktarı...");
            }
            else
                if (fark == 0) // Eğer bir ceza yoksa  bunu göster
                {
                    ceza = 0;
                    txtCeza.Text = "0";
                    txtToplam.Text = fiyat.ToString("#,#");
                   
                    MessageBox.Show("Tam gününde ödendi","Teşekürler");
                }
                else //
                {
                    ceza = 0;
                    txtCeza.Text = ceza.ToString("#,#");
                    txtToplam.Text = (fiyat - ceza).ToString("#,#");
                    
                    MessageBox.Show(fark + " gün erken ödendi." + 500 + " TL indirimli ödeyecek","Teşekürler. Erken Ödeme yaptınız.");
                }
        }

        /// Yeni hesaplama butonuna tıklama işlemi
        private void btnYeniHesaplama_Click(object sender, EventArgs e)
        {
            //Yeni hesaplama butonuna tıklandığında tüm textbox kutucuklarının text
            //değerini temizleyecek

            textboxTemizle();
        }

        /// Textbox kutularını yenileme ve temizleme işlemini yapan metot
        private void textboxTemizle()
        {
            // Textbox ların hepsinin Text değerini temizlemek için foreach ile 
            // form kontrollerin hepsini kontrol et. Textbox olan kontrollerin text
            // değerini string.Empty olarak güncelle

            foreach (Control item in this.Controls)
            {
                if (item is TextBox)
                    (item as TextBox).Text = string.Empty;
            }

            int sıfırla = 0;
            
            txtToplam.Text = sıfırla.ToString("0.00");
            
            txtCeza.Text = sıfırla.ToString("0.00");
        }

   
    }
}


UYGULAMAYI İNDİR

Hiç yorum yok :

Yorum Gönder