私は1日3シフトを作成できるという要件があります。シフトタイミングは次のとおりです。2つの時間範囲が重複しているかどうかを確認するにはどうすればよいですか?
06:00 - 14:00
14:01 - 22:00
22:01 - 05:59.
シフトタイミングが重なっていないことを確認する方法はありますか? 3番目のケースではからまではからまでです。
私は1日3シフトを作成できるという要件があります。シフトタイミングは次のとおりです。2つの時間範囲が重複しているかどうかを確認するにはどうすればよいですか?
06:00 - 14:00
14:01 - 22:00
22:01 - 05:59.
シフトタイミングが重なっていないことを確認する方法はありますか? 3番目のケースではからまではからまでです。
最後に私は自分自身の問題を解決しました。下記をご覧ください。
public void checkIfTimesOverlapped(){
// eft - existed FROM TIME
// ett - existed TO TIME
// cft - current entered FROM TIME
// ctt - current entered TO TIME
// Note : same FROM TIME and TO TIME is not allowed. so not checking.
float eft = 22.00f;
float ett = 05.00f;
float cft = 23.00f;
float ctt = 24.00f;
if (cft < ctt) {
if (eft < ett) {
if(cft<=ett && ctt>=eft){
System.out.println("overlapped");
}
} else if(eft > ett) {
if(!(cft>ett && ctt<eft)){
System.out.println("overlapped");
}
}
} else if (cft > ctt) {
if (eft < ett) {
if((cft>=eft && cft<=ett) || (ctt>=eft && ctt<=ett)){
System.out.println("overlapped");
}
} else if(eft > ett) {
// already one shift existed with FROM TIME > TO TIME. so again FROM TIME > TO TIME is not possible
System.out.println("overlapped");
}
}
}
[スタイルガイド](https://google.github.io/styleguide/javaguide.html)に従ってください。コードを読みやすく、デバッグしやすくなります。変数をよりわかりやすい名前にすることは非常に重要です。変数の使用方法を示すためにコメントを含める必要はありません。 'eft'や' ett'のような変数に名前を付けるのではなく、 'existingFrom'と' existingTo'、あるいは 'originalFrom'や' originalTo'のようにします。 –
どうかの他にあるでしょうか? –
ちょうど親切なヒント、このページを読むことができます:[How-To-Ask Guide](https://stackoverflow.com/help/how-to-ask)可能な限り簡単に答えることができます。あなたが抱えている問題を修正するためにあなたがした努力と、それらの修正を試みたときに何が起こったのかを必ず含めてください。ショーコードとエラーメッセージも忘れないでください! –
@Matthew Cliattご意見ありがとうございます。 – RaoPotla