Şu hesaplamayı deneyin;
Let (
[
BaslamaTarihi = Date ( 1 ; 11 ; 2016 ) ;
BitisTarihi = Date ( 4 ; 13 ; 2016 ) ;
HangiAy = 3 ;
HangiYil = 2016 ;
EksikGun = 0 ;
GunSay = Day ( Date ( HangiAy+1 ; 1 ; 1 ) - 1 )
] ;
Case (
//Durum 1 : Aynı anda çalışıp ayrılırsa
Month ( BaslamaTarihi ) = HangiAy and Month ( BitisTarihi ) = HangiAy
//Koşullara devam ediyoruz, yılı da kontrol etmemiz lazım, yoksa gelecek sene yine ilk defa işe giriyormuş gibi değerlendirir.
and Year ( BaslamaTarihi ) = HangiYil and Year ( BitisTarihi ) = HangiYil;
//Durum 1 Hesaplaması
BitisTarihi - BaslamaTarihi ;
//Durum 2 : İşe başladığı aysa
Month ( BaslamaTarihi ) = HangiAy and Year ( BaslamaTarihi ) = HangiYil ;
//Durum 2 Hesaplaması
GunSay - Day ( BaslamaTarihi ) +1 ;
//Durum 3 : İşten ayrıldığı aysa
Month ( BitisTarihi ) = HangiAy and Year ( BitisTarihi ) = HangiYil ;
//Durum 3 Hesaplaması
Day ( BitisTarihi ) ;
//Durum 4 : Normal çalışma ayları 30 gün
30
)
// Eksik gün tüm durumlar için çıkartılacağı için "Case"in dışında.
- EksikGun
)