
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ランキング
-
【ACCESS】未定義関数が発生。...
-
エクセルで四捨五入ではなく、5...
-
Excel 隣のセルが空白以外の場...
-
「24日の0時」って・・・
-
エクセルの列が左右逆に・・・・
-
「時間」、「期日」、「日付」...
-
日付の大小の表現
-
エクセルのチェックボックスを...
-
excelで、セル内に文字が入力さ...
-
VBAでエクセルシートを更新...
-
差し込み印刷に当日の日付が入...
-
エクセルで数字から名前に変...
-
メールの最後に日付をいれますか?
-
エクセル 日付順に並べてかえた...
-
表示倍率を変更させない方法
-
EXCELで日付を****年上期、****...
-
折れ線グラフ 横軸の日付 土...
-
マクロボタンを押すと、ファイ...
-
エクセルファイルを開くとメッ...
-
回覧板の日付について質問です...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
コンピューターで2進法が採用...
-
Excel 隣のセルが空白以外の場...
-
【ACCESS】未定義関数が発生。...
-
ACCESS で深夜計算
-
アクセスについて
-
エクセルでeのマイナス乗の計算...
-
エクセルで四捨五入ではなく、5...
-
ACCESSでの時間外計算方法
-
ファイルメーカープロ8で生年月...
-
計算結果をCASE WHENで判断した...
-
選択クエリを開けない
-
アクセスである時点での年齢を...
-
エクセルについて
-
exelでの年齢 何さい何か月何日...
-
Excelで、生年月日と特定の日付...
-
チェックデジットを付加したデ...
-
SQL Server での小数点以下の「...
-
携帯番号がわかる計算式
-
ファイルメーカーPro7での経過...
-
ファイルメーカーで時間の表示...
おすすめ情報