blob: cfecdd2432dfc8100c46d464b19e4c3f3e52957a [file] [log] [blame]
/*
* Sun Public License Notice
*
* The contents of this file are subject to the Sun Public License
* Version 1.0 (the "License"). You may not use this file except in
* compliance with the License. A copy of the License is available at
* http://www.sun.com/
*
* The Original Code is NetBeans. The Initial Developer of the Original
* Code is Sun Microsystems, Inc. Portions Copyright 1997-2000 Sun
* Microsystems, Inc. All Rights Reserved.
*/
package org.netbeans.lib.cvsclient.admin;
/**
* A class for comparing the file's date and the CVS/Entries date.
*
* @author Thomas Singer
* @version Sep 29, 2001
*/
public final class DateComparator {
private static final long SECONDS_PER_HOUR = 3600;
private static final DateComparator singleton = new DateComparator();
/**
* Returns an instance of a DateComparator.
*/
public static DateComparator getInstance() {
return singleton;
}
/**
* This class is a singleton. There is no need to subclass or
* instantiate it outside.
*/
private DateComparator() {
}
/**
* Compares the specified dates, whether they should be treated as equal.
* Returns true to indicate equality.
*/
public boolean equals(final long fileTime, final long entryTime) {
final long fileTimeSeconds = fileTime / 1000;
final long entryTimeSeconds = entryTime / 1000;
final long difference = Math.abs(fileTimeSeconds - entryTimeSeconds);
// differences smaller than 3 seconds are treated as equal
if (difference < 3) {
return true;
}
// 1-hour-differences (caused by daylight-saving) are treated as equal
if (difference >= SECONDS_PER_HOUR - 3
&& difference <= SECONDS_PER_HOUR + 3) {
return true;
}
return false;
}
}