私は私の会社のための新しいタイムクロックシステムを構築しています、と私は特定の日にすべてのタイムスタンプ間の時間差を追加する方法を考え出すいくつかの問題を抱えています...時間差
ここ私の見解は、私が希望私は、毎日の時間を集計できるようにすることです....これを作成し
<% @punches_days.sort.each do |day, punches|%>
<h3><%= day.strftime('%A %D') %></h3>
<table>
<tr>
<th>Status</th>
<th>Comment</th>
<th>Time</th>
<th></th>
<th></th>
</tr>
<% for punch in punches %>
<tr>
<td><%= punch.status %></td>
<td><%= punch.comment %></td>
<td><%= punch.created_at.in_time_zone(punch.user.time_zone)%></td>
<td><%= link_to 'Show', punch %></td>
<td><%= link_to 'Edit', edit_punch_path(punch) %></td>
<td><%= link_to 'Destroy', punch, :confirm => 'Are you sure?', :method => :delete %></td>
</tr>
<% end %>
</table>
<% end %>
...
Sunday 11/06/11
Status Comment Time
In 2011-11-06 08:00:00 -0500 Show Edit Destroy
Lunch 2011-11-06 12:00:00 -0500 Show Edit Destroy
In 2011-11-06 13:00:00 -0500 Show Edit Destroy
Out 2011-11-06 16:00:00 -0500 Show Edit Destroy
Tuesday 11/08/11
Status Comment Time
In 2011-11-08 08:00:00 -0500 Show Edit Destroy
Lunch 2011-11-08 12:15:00 -0500 Show Edit Destroy
In 2011-11-08 13:00:00 -0500 Show Edit Destroy
Out 2011-11-08 16:41:00 -0500 Show Edit Destroy
あり、その後、すべての合計。私は2回の時間差を得る方法を知っていますが、1日中複数の時間の時間差を取り戻すことはできません。
私はインターネットを例に挙げて掃除しました私はここに)
を...任意のアイデアをいただければ幸いです....
おかげで...
EDITを達成しようとしています、と空が出ているの一部と私のコントローラのコードですこのソリューションは実装されていますが、これは私に合計を与えますが、私は順序付きハッシュをどのように使用しているので、毎日これを行うことはできません。 ..
def timecard
@punches = Punch.timecard(params[:user])
@punches_days = @punches.group_by { |t| t.created_at.beginning_of_day}
@in_out_lengths = @punches.each_slice(2).map { |a| a[1].created_at - a[0].created_at }
@total = ((@in_out_lengths.inject(:+))/1.hour).round
respond_to do |format|
format.html # timecard.html.erb
format.json { render :json => @punches }
end
end
私は少しあなたのデータで混乱しています。日曜日に12:15にパンチした人のように見え、火曜日11:10にパンチアウトしなかったようです。それはかなり長いシフトです。 –
私はそれが笑になるだろうと思うが、これは単なるサンプルデータであり、私はそのようなことを捕まえるための検証を書いていない...ちょうど一緒にナットとボルトを取得しようとしている.... –
したがって、常に[パンチイン、パンチアウト、パンチイン、パンチアウト...]のように見える? –