AccessTr.neT

Tam Versiyon: Textbox (gün Ay Yıl) Tarih Toplama Ve Çıkarma
Şu anda arşiv modunu görüntülemektesiniz. Tam versiyonu görüntülemek için buraya tıklayınız.
Sayfalar: 1 2 3
TOPLAMA
TextBox7 = 1 Yıl 7 Ay 0 Gün
TextBox9 = 10 Yıl 2 Ay 16 Gün
TextBox11 = 11 Yıl 9 Ay 16 Gün

Textbox7 ile Textbox9' da yazan yıl ay gün şeklinde ki tarih biçimini Commandbutton1 ile Textbox11' e toplamak.
ÇIKARMA
TextBox9 = 10 Yıl 2 Ay 16 Gün
TextBox7 = 1 Yıl 7 Ay 0 Gün
TextBox11 = 8 Yıl 7 Ay 16 Gün

Textbox9 ile Textbox7' de yazan yıl ay gün şeklinde ki tarih biçimini Commandbutton2 ile Textbox11' e Çıkarmak
için gerekli makro koduna müsait olan arkadaşlarımızdan yardımcı olmalarını rica ediyorum.
Saygılarımla
ay ve yıl standart degerleri mi alacak 30 ve 365
ustam
Yıl 360
Ay 30
Peki verilerin formatı kesin olarak doğru girilmiş olacak mı?
Yani ne bileyim yıl yerine yıl olma olasılığı yada 11 yıl yerine 1 1 yol gibi hatalı yazılma olasılıkları da var mı?

1 1, 2 bir arasında boşluk var
Ustam farklı girilmesi gibi bir durum söz konusu değil.
aşağıdaki fonksiyonu dener misiniz?
toplama için
Function TrhTopla()
Dim Sure1, Sure2
Sure1 = Split(Trim(TextBox7), " ")
Sure2 = Split(Trim(TextBox9), " ")
TSon = (CLng(Sure1(0)) + CLng(Sure2(0))) * 365 + (CLng(Sure1(2)) + CLng(Sure2(2))) * 30 + (CLng(Sure1(4)) + CLng(Sure2(4)))
TextBox11 = TrhDagit(TSon)
' Debug.Print TSon, CLng(Sure1(0)) + CLng(Sure2(0)), CLng(Sure1(2)) + CLng(Sure2(2)), CLng(Sure1(4)) + CLng(Sure2(4))
End Function

Function TrhDagit(ByVal GunSay As Long) As String
Yil = Fix(GunSay / 365)
Ay = Fix((GunSay - Yil * 365) / 30)
Gun = GunSay - (Yil * 365 + Ay * 30)
TrhDagit = CStr(Yil) & " yıl " & Ay & " ay " & Gun & " gün"
End Function
çıkarma için topla işlemindeki + aşağıdaki gibi - yapılıp metin kutularının adını değiştirmeniz yeterli
TSon = (CLng(Sure1(0)) - CLng(Sure2(0))) * 365 + (CLng(Sure1(2)) - CLng(Sure2(2))) * 30 - (CLng(Sure1(4)) + CLng(Sure2(4)))
Sayfalar: 1 2 3