我很想认为HashSet.contains(Object)方法在恒定时间内执行.它只是获取一个对象的哈希码,然后在哈希表中查找它.
首先,有人可以确认这是否属实?
第二,如果是真的,是否有任何冲突的风险,其中两个对象可能具有相同的哈希码,因此HashSet认为它只有两个对象时只有一个?
我的要求是计算给定两个日期之间的天数,不包括星期六和星期日.
例:
Start date - 10/09/15 and End date 18/09/15
Result: 7
Run Code Online (Sandbox Code Playgroud)
日期DD/MM/YY格式.
码:
import java.io.InputStreamReader;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Scanner;
public class DaysCounter {
private String startDate;
private String endDate;
public void calculateDate(){
@SuppressWarnings("resource")
Scanner in=new Scanner(new InputStreamReader(System.in));
System.out.println("Enter the starting date (DD/MM/YY) :");
startDate=in.next();
System.out.println("Enter the End date (DD/MM/YY) :");
endDate=in.next();
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
try
{
Calendar start = Calendar.getInstance();
start.setTime(sdf.parse(startDate));
Calendar end = Calendar.getInstance();
end.setTime(sdf.parse(endDate));
int …Run Code Online (Sandbox Code Playgroud) 嗨,我尝试这段代码有几天的工作(包括周末),所以我怎么能在两个日期之间排除周末?
public long getDifferenceDays(Date d1, Date d2) {
long diff = d2.getTime() - d1.getTime();
long diffDays = diff / (24 * 60 * 60 * 1000);
return diffDays;
}
Run Code Online (Sandbox Code Playgroud) 我的问题是我需要获取用户输入的两个日期之间的工作日。我不知道用什么来比较和获取日期,但有我的代码。
// Scanner
Scanner input = new Scanner(System.in);
System.out.println("First date: ");
String date1 = input.nextLine();
System.out.println("Second date: ");
String date2 = input.nextLine();
input.close();
// The format for the Date
DateFormat formatDate = new SimpleDateFormat("dd/MM/yyyy");
// Conver String to Date
Date date_1 = formatDate.parse(date1);
Date date_2 = formatDate.parse(date2);
// Calendar
Calendar calendar = Calendar.getInstance();
// Date to Calendar
calendar.setTime(date_1);
calendar.setTime(date_2);
Run Code Online (Sandbox Code Playgroud)
现在我需要做一些事情来获得这些日期之间的工作日,但我不知道如何