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");
}
}
}

Hiç yorum yok :
Yorum Gönder