FilemakerTurk, AYS Bilişim ve Beyaz Net tarafından desteklenmektedir.
Filemaker Danışmanınız
AYS Bilişim
Mehmet KAYA
 0532 231 07 27
 0216 318 55 80
 mkaya@aysbilisim.net
						

Hizmet Süresini nasıl hesaplarım?(Gün ay yıl cinsinden)

+1 oy
329 kez görüntülendi

3 gündür içinden çıkamadım.
"Get ( CurrentDate ) - Hizmet Başlangıcı - Sum ( Izinler::Ücretsiz İzin Toplamları )" Şeklindeki hizmet süresi hesabımızı X gün X Ay X Yıl şeklinde yazdırmam lazım. Gün, Ay, Yıl alanları ayrı fieldlerde olabilir.

1- Alanın calculation resultunu date yaparsam; 
Örneğin; Hizmet başlangıcı: 13.11.2018 , Bugünün tarihi: 13.01.2019 Sonuç:02.03.0001 çıkıyor. Halbuki 2 ay olması lazım.
Yıl alanını "Year ( Hizmet Süresi ) - 1" Ay alanını "Month ( Hizmet Süresi ) - 1" yapmayı filan denedim. 

2- "Yıl-Yıl", "Ay-Ay", "Gün-Gün" gibi alanları kendi içinde çıkarmayı denedim. Sum ( Izinler::Ücretsiz İzin Toplamları ) işi karıştırdı, ücretsiz izinler 1 günden 2 yıla kadar oluyor.

Çok fazla parametre var. Tavsiye edebileceğiniz bir yöntem var mıdır?

13, Ocak, 2019 Database kategorisinde saciddd (3,450 puan) tarafından soruldu
Selam ederim;

3.11.2018 , Bugünün tarihi: 13.01.2019 Sonuç: 02.03.0001
Sonuç tarih olmayacağı için bu değeri almanız normaldir. Sonuç alanınızın özelliğini Date den Number olarak değiştirirseniz sorunuz düzelecek ve hizmet süresi hesabınızın sonucu 61 olarak hesaplanacaktır.

Hayırlı günler dilerim.
Saygılarımla.

2 Cevaplar

+1 oy
 
En İyi Cevap

Yaş hesapları çok sağlıklı sonuç vermiyor, zira hizmet süresi hesaplarken 1 ay 30 gün üzerinden hesaplanması ayrıca kullanılan ücretsiz izinlerin düşülmesi lazım. En sonunda bugün çözdüm, buraya da yazayım, muhakkak birilerinin işine yarayacaktır;

Asıl Hizmet Başlangıcı dışında "Hizmet Başlangıcı" isimli bir calculation field tanımladım, formülü bu;
"Hizmet Başlangıcı
Asıl + Sum ( Izinler::Ücretsiz İzin Toplamları )"

Daha sonra Hizmet Yılını;

"Year ( Get ( CurrentDate ) ) -
Year ( Hizmet Başlangıcı ) -
Case ( Month ( Get ( CurrentDate ) ) < Month ( Hizmet Başlangıcı ) ; 1 ; 0 )" //formülüyle;

Hizmet Ayını;

"Case (
Day (Get ( CurrentDate )) <
Day ( Hizmet Başlangıcı)
and
Month ( Get ( CurrentDate ) ) <
Month ( Hizmet Başlangıcı ) ;

Month ( Get ( CurrentDate ) ) + 11 -
Month ( Hizmet Başlangıcı ) ;

Day (Get ( CurrentDate )) >
Day ( Hizmet Başlangıcı)
and
Month ( Get ( CurrentDate ) ) <
Month ( Hizmet Başlangıcı ) ;

Month ( Get ( CurrentDate ) ) + 12 -
Month ( Hizmet Başlangıcı ) ;

Month ( Get ( CurrentDate ) ) <
Month ( Hizmet Başlangıcı ) ;

Month ( Get ( CurrentDate ) ) +12 -
Month ( Hizmet Başlangıcı ) ;

Month ( Get ( CurrentDate ) ) -
Month ( Hizmet Başlangıcı ) )"  //Formülüyle (Bunu nasıl yaptığım hakkında hala bir fikrim yok :D )

Hizmet Gününü;

"If ( Day (Get ( CurrentDate )) <
Day ( Hizmet Başlangıcı);

Day(Get ( CurrentDate )) + 30 -
Day ( Hizmet Başlangıcı);

Day(Get ( CurrentDate )) -
Day ( Hizmet Başlangıcı) )"   // olarak hesaplattım, şu an sistem muazzam çalışıyor, herkese teşekkür ederim...

14, Ocak, 2019 saciddd (3,450 puan) tarafından cevaplandı
+1 oy
Sitede “yaş hesaplama” biçiminde arama yapın,istediğiniz sonucu veren dosya ve örnek fonksiyonlar var...
13, Ocak, 2019 Şemsi Saracoğlu (133,920 puan) tarafından cevaplandı
...