
A 回答 (4件)
- 最新から表示
- 回答順に表示

No.3
- 回答日時:
#2です。
補足します。勤務時間:wTime
夜勤時間:nTime
の算出は下記のアルゴリスムの方が良さそうです
・開始時刻(日時分)から終了時刻(日時分)まで、日時分を1分ずつ増加させループする。この間
・wTime:=wTime+1
・時刻(時分)だけを切り取る
・if 18:00<時刻<=24:00 or 0:00<時刻<=8:00 then
nTime:=nTime+1
この方式の利点は
1.if文が一カ所で明快
2.24時間超勤務にも対応
3.昼→夜→昼、夜→昼→夜も問題ない
4.休憩時間や深夜割り増しにも対応できる
5.一時間半割り増しが夜勤に応用されても構わない
などです。計算量は増えますが、現在のコンピュータパワーを考えれば、千人ぐらいの計算は瞬時に終わるでしょう

No.2
- 回答日時:
考えてみると詳細不明な点も出てきましたが、以下のような条件で。
・徹夜勤務が続いていても、月初、月末でいったん打ち切る
・24時間を超える連続勤務はない
・15分で切り上げ切り下げは取り敢えず無視する
・ファイルメーカーの言語仕様は判らないので、一般的なプログラムの考え方で説明
考え方としては、勤務時間から基礎給与計算。それに夜間割り増しを足すことで良さそうです。
勤務時間:wTime
夜勤時間:nTime
計算式:1.5*1200+(wTime-1.5)*1000+nTime*300
たとえば
a.14:00-16:00:\2300
b.16:00-18:30:\2950
c.17:00-18:30:\1950
d.7:00-8:30:\2100
e.17:00-8:30:\20000
出勤簿に出・退時刻が記録されているとしますと
出:sTime
退:eTime
パスカル風に書くと
if sTime>=18 and (eTime>18 or eTime=<8) then begin //すべて夜勤
wTime:=eTime-sTime;
if wTime<0 then wTime:=wTime+24;
nTime:=wTime
end else if sTime<18 and (eTime>18 or eTime=<8) then begin //昼勤から夜勤
wTime:=eTime-sTime;
if wTime<0 then wTime:=wTime+24;
nTime:=eTime-18;
if nTime<0 then nTime=nTime+24;
end else if sTime>=18 and (eTime<18 and eTime>8) then begin //夜勤 から昼勤
wTime:=eTime-sTime;
if wTime<0 then wTime:=wTime+24;
nTime:=24+8-sTime
end else if sTime>=8 and eTime<18 then begin //すべて昼勤
wTime:=eTime-sTime;
nTime:=0;
end;
これを出退勤の数だけ足してやる。
あと勤務時間が12時間を超えて 昼→夜→昼、夜→昼→夜 のパターンを検討してありませんが、同じような考え方で出来るでしょう

No.1
- 回答日時:
ファイルメーカーは使用していないので、補足いただいても適当な回答が出来るか、不明です(^^;
その前提で
・勤務時間が細切れに複数ありうるか
例:11時~17時 + 19時~21時
・「15分未満切り捨て、15分以上切り上げ」は記録時点か、計算時点か
この回答への補足
説明不足で申し訳ありません。
どうぞよろしくお願いします。
・勤務時間が細切れに複数ありうるか
→あります。しかし、一勤務毎の給与が算出できればOKです。よって、例のように足し算をしていただかなくて結構です。
・「15分未満切り捨て、15分以上切り上げ」は記録時点か、計算時点か
→計算時点です。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
コンピューターで2進法が採用...
-
ファイルメーカーで学年を表示...
-
「24日の0時」って・・・
-
ACCESSで日付ごとに自動連番(...
-
折り返して表示、縮小して表示...
-
回覧板の日付について質問です...
-
Excel:セルに入力されている日...
-
会社や役所などに提出する書類...
-
エクセルのチェックボックスを...
-
エクセルで数字から名前に変...
-
Excelについて
-
日付の大小の表現
-
VBAでエクセルシートを更新...
-
Accessで文字列の長さによって...
-
「時間」、「期日」、「日付」...
-
ACCESS 2000のレポートでの文字...
-
フォームの値をクエリーに反映...
-
差し込み印刷に当日の日付が入...
-
Excelでヘッダに前日の日付を表...
-
エクセルで最高値、最低値の日...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
コンピューターで2進法が採用...
-
Excel 隣のセルが空白以外の場...
-
【ACCESS】未定義関数が発生。...
-
ACCESS で深夜計算
-
アクセスについて
-
エクセルでeのマイナス乗の計算...
-
エクセルで四捨五入ではなく、5...
-
ACCESSでの時間外計算方法
-
ファイルメーカープロ8で生年月...
-
計算結果をCASE WHENで判断した...
-
選択クエリを開けない
-
アクセスである時点での年齢を...
-
エクセルについて
-
exelでの年齢 何さい何か月何日...
-
Excelで、生年月日と特定の日付...
-
チェックデジットを付加したデ...
-
SQL Server での小数点以下の「...
-
携帯番号がわかる計算式
-
ファイルメーカーPro7での経過...
-
ファイルメーカーで時間の表示...
おすすめ情報