2017-01-12 9 views
1

私は従業員の先週の給料を計算しようとしています。今週は私が計算に含めてはならないことを意味します。現在、私はデータをチェックするために現在の日付から-7を持っています。これは私のコードです先週の給与計算方法はjavascriptでですか?

var currentDate = new Date(); 
log.info(currentDate) 
var requiredDate=new Date(currentDate.getFullYear(),currentDate.getMonth(),currentDate.getDate()-7) 
var start=Date.parse(requiredDate) 
var end=Date.parse(currentDate); 
query="taskCreateTimestamp:["+start+" TO "+end+"]"; 

私の目的は、月曜日から金曜日までの先週の給与を計算することです。私は自分のデータだけをチェックするために-7を取った。助けてください

+0

あなたの質問は「タイムスタンプの有効性を確認する方法は、月曜日、火曜日の水曜日か他の日か?コードでは先週の給料を計算するよう求めています。あなたが結果で欲しいと思っている帽子 – mean

+0

あいまいさのために申し訳ありません。私は先週の給料のみを計算する必要があります。 @mean –

+0

最後に、あなたは現在の日付を望んでいて、前の日から7日目は今からですよね? – mean

答えて

0

このリンクをチェックすると、先週の開始日と終了日を知ることができます。 を入力し、データにタイムスタンプがある場合は、開始日にタイムスタンプ '00:00:00'を、終了日に'23:59:59 'を追加します。

get last week in javascript

0

「(月の給与/(営業日))*(先週の営業日)」のライン上 が先週の給与を計算するための数式でなければなりません。したがって、指定された日付間隔の就業日を計算するメソッドが必要です。

function getWorkingDays(startDate, endDate){ 
    var totalWorkingDays= 0; 
    var currentDate = startDate; 
    while (currentDate <= endDate) { 
     var weekDay = currentDate.getDay(); 
     if(weekDay != 0 && weekDay != 6) { 
      totalWorkingDays++; 
     } 
     currentDate.setDate(currentDate.getDate()+1); 
    } 
    return totalWorkingDays; 
} 

次に、日付を付けて数式を適用します。

+0

私の目的は、先週の給与だけを計算することです。今日がmondayの場合、今日の日は含まれていません。金曜日の月曜日の給与を計算することができます。 –

0

私はJaggeryjsで以下のコードを使用しています。私はまだテストしていませんが、期待される結果を得ています。

var currentDate = new Date(); 
    var requiredDate; 
    log.info(currentDate) 
    var set=currentDate.setHours(0) 
    if(currentDate.getDay() == 1) 
    { 
    requiredDate=new Date(currentDate.getFullYear(),currentDate.getMonth(),currentDate.getDate()-7) 
    } 
    else if(currentDate.getDay() == 2) 
    { 
    requiredDate=new Date(currentDate.getFullYear(),currentDate.getMonth(),currentDate.getDate()-8) 
    } 
    else if(currentDate.getDay() == 3) 
    { 
    requiredDate=new Date(currentDate.getFullYear(),currentDate.getMonth(),currentDate.getDate()-9) 
    } 
    else if(currentDate.getDay() == 4) 
    { 
    requiredDate=new Date(currentDate.getFullYear(),currentDate.getMonth(),currentDate.getDate()-10) 
    } 
    else if(currentDate.getDay() == 5) 
    { 
    requiredDate=new Date(currentDate.getFullYear(),currentDate.getMonth(),currentDate.getDate()-4) 
    } 
    else if(currentDate.getDay() == 6) 
    { 
    requiredDate=new Date(currentDate.getFullYear(),currentDate.getMonth(),currentDate.getDate()-5) 
    } 
    else if(currentDate.getDay() == 7) 
    { 
    requiredDate=new Date(currentDate.getFullYear(),currentDate.getMonth(),currentDate.getDate()-6) 
    } 
    var start=Date.parse(requiredDate) 
    log.info("Start-Date["+start+"]")   
    log.info("End----------------------------------------------") 
    var currentDate = new Date(); 
    log.info(currentDate)  
    var end; 
    if(currentDate.getDay() == 7) 
    { 
    end=new Date(currentDate.getFullYear(),currentDate.getMonth(),currentDate.getDate()-2) 
    } 
    else if(currentDate.getDay() == 6) 
    { 
    end=new Date(currentDate.getFullYear(),currentDate.getMonth(),currentDate.getDate()-1) 
    } 

    else if(currentDate.getDay() == 5) 
    { 
    end=Date.parse(currentDate) 
    log.info("End Date ["+end+"]") 
    } 
    else if(currentDate.getDay() == 4) 
    { 
    end=new Date(currentDate.getFullYear(),currentDate.getMonth(),currentDate.getDate()-6) 
    } 
    else if(currentDate.getDay() == 3) 
    { 
    end=new Date(currentDate.getFullYear(),currentDate.getMonth(),currentDate.getDate()-5) 
    } 
    else if(currentDate.getDay() == 2) 
    { 
    end=new Date(currentDate.getFullYear(),currentDate.getMonth(),currentDate.getDate()-4) 
    } 
    else if(currentDate.getDay() == 1) 
    { 
    end=new Date(currentDate.getFullYear(),currentDate.getMonth(),currentDate.getDate()-3) 
    } 


    end=Date.parse(currentDate); 
    log.info("End-Date["+end+"]")   
    query="taskCreateTimestamp:["+start+" TO "+end+"]"; 
関連する問題