****給与の種類のいくつかの分数の日を持っている場合。****(javascriptまたは/およびdatejs)2つの日付間隔の合計給与を計算しようとしています。開始日と終了日は、毎月月
var getDiffDatesSalary = function days_between(date1,date2, monthlyBasic) {
var dateObj1 = new Date(date1);
var month1 = dateObj1.getMonth(); //months from 1-12
var day1 = dateObj1.getDate();
var year1 = dateObj1.getFullYear();
var daysInMonth1 = Date.getDaysInMonth(year1, month1);
var dateObj2 = new Date(date2);
var month2 = dateObj2.getMonth(); //months from 0-11
var day2 = dateObj2.getDate();// days from 1
var year2 = dateObj2.getFullYear();
var daysInMonth2 = Date.getDaysInMonth(year2, month2);
var date1FractionDays = daysInMonth1 - day1;
var date2FractionDays = daysInMonth2 - day2;
var newDate1, newDate2;
if(day1 > 1){
var perDaySalary1 = monthlyBasic/daysInMonth1;
var thisMonthFarctionDaysSalaryForDate1 = perDaySalary1 * date1FractionDays;
month1 += 1; // after calculate fraction this month basic, round month from next
newDate1 = new Date(year1,month1);
}
if(day2 !== daysInMonth2){
var perDaySalary2 = monthlyBasic/daysInMonth2;
var thisMonthFarctionDaysSalaryForDate2 = perDaySalary2 * day2;
month2 -= 1; //after calculate fraction this month basic, round month from previous
newDate2 = new Date(year2,month2);
}
// i want to calculate totalSalaryamount of date ranges
// var totalFractionDaysSalary = thisMonthFarctionDaysSalaryForDate1 + thisMonthFarctionDaysSalaryForDate2;
// var totalMonthsSalay = roundMonths * monthlyBasic;
// var totalSalaryamount = totalFractionDaysSalary + totalMonthsSalay;
};
**
結果= thisMonthFarctionDaysSalaryForDate1 + thisMonthFarctionDaysSalaryForDate2 +(roundMonths * monthlyBasic)
結果はgetDiffDatesSalary( "2016/01/15"、 "2016/03/25"、1000)となります。 + 1000年
516.13 + 806.45 //合計:2322.58
または/およびgetDiffDatesSalary( "2015年1月15日"、 "2016年3月25日"、1000);
516.13 + 806.45 +(* 13 1000)//合計:14322.58
または/およびgetDiffDatesSalary( "2016年1月1日"、 "2016年2月29日"、1000);
* 2 // 2000年1000年
**
私はこの機能を修正するために助けが必要(http://momentjs.com/) – Zamboney
[ 'momentjs']を使用してみてください。私はしようとしたができません..ありがとうZamboney –
は、同じ日の一日ですか? –