Вызов функций дороже, чем арифметические операции.
Самый быстрый способ сделать это включает в себя 2 вычитания и 1 мин ():
min(r1.end - r2.start, r2.end - r1.start).days + 1
по сравнению со следующим лучшим, что требуется 1 вычитание, 1 мин () и max ():
(min(r1.end, r2.end) - max(r1.start, r2.start)).days + 1
Конечно, с обоими выражениями вам все равно нужно проверить положительное перекрытие.
pass.equals("S")
означает, что ваш пароль всегда должен быть S
для успешного входа в систему.
Вам нужно запросить базу данных и затем сравнить ее.
Result rs = st.executeQuery(S);
String queryPass = null;
if(rs.next()){
queryPass = rs.getString("password");
}
if (pass.equals(queryPass)) {
jOptionPane1.showMessageDialog(null, "YOU HAVE SUCCESSFULLY LOGGED IN");
MAINPAGE at = new MAINPAGE();
jDesktopPane1.add(at);
at.show();
} else {
jOptionPane1.showMessageDialog(null, "WRONG PASSWORD!!");
}
BTW, неплохо передать параметры непосредственно в ваш sql, вам нужно использовать PreparedStatement вместо Statement , чтобы избежать SQL Injection
## Попробуйте это ##
String email=request.getParameter("email");
String pass=request.getParameter("pass");
Class.forName("com.mysql.jdbc.Driver");
Connection con=DriverManager.getConnection("jdbc:mysql://localhost:3306/users_record","root","root");
Statement st1=con.createStatement();
ResultSet obj1=st1.executeQuery("select * from registration where email='" +email+ "'");
System.out.println(email);
while(obj1.next())
{
String p2=obj1.getString(5);
if(p2.equals(pass))
{
response.sendRedirect("home1.jsp?msg=YOU HAVE SUCCESSFULLY LOGGED IN ");
}
else
{
response.sendRedirect("login1.jsp?msg=Invalid password");
}
}