还有一种方法就是转换为日期import java.util.Date;public class CountDay { public long countDay(String Endday1,String Beginday2){
String t1 = Endday1.replace('-','/'); String t2 = Beginday2.replace('-','/'); long b = 0L; long a = 0L; try{ Date dt1= new Date(t1); Date dt2= new Date(t2); // System.out.println("dt1="+dt1.getTime()); // System.out.println("dt2="+dt2.getTime()); a = dt1.getTime() - dt2.getTime(); b = a/60/60/1000/24;
{
System.out.println("aaa".compareTo("tttttt"));
}用.compareTo()返回的是负数表示前面比后边的小.
public int compareTo(String anotherString)按字典顺序比较两个字符串。该比较基于字符串中各个字符的 Unicode 值。按字典顺序将此 String 对象表示的字符序列与参数字符串所表示的字符序列进行比较。如果按字典顺序此 String 对象位于参数字符串之前,则比较结果为一个负整数。如果按字典顺序此 String 对象位于参数字符串之后,则比较结果为一个正整数。如果这两个字符串相等,则结果为 0;compareTo 只在方法 equals(Object) 返回 true 时才返回 0。
这是字典排序的定义。如果这两个字符串不同,那么它们要么在某个索引处的字符不同(该索引对二者均为有效索引),要么长度不同,或者同时具备这两种情况。如果它们在一个或多个索引位置上的字符不同,假设 k 是这类索引的最小值;则在位置 k 上具有较小值的那个字符串(使用 < 运算符确定),其字典顺序在其他字符串之前。在这种情况下,compareTo 返回这两个字符串在位置 k 处两个char 值的差,即值: this.charAt(k)-anotherString.charAt(k)
如果没有字符不同的索引位置,则较短字符串的字典顺序在较长字符串之前。在这种情况下,compareTo 返回这两个字符串长度的差,即值:
this.length()-anotherString.length()
指定者:
接口 Comparable<String> 中的 compareTo
参数:
anotherString - 要比较的 String。
返回:
如果参数字符串等于此字符串,则返回值 0;如果此字符串按字典顺序小于字符串参数,则返回一个小于 0 的值;如果此字符串按字典顺序大于字符串参数,则返回一个大于 0 的值。
或者你自己重写compareTo方法
System.out.println("A大于B");}
if(A.compareTo(B)<0){
System.out.println("A小于于B");}
public long countDay(String Endday1,String Beginday2){
String t1 = Endday1.replace('-','/');
String t2 = Beginday2.replace('-','/');
long b = 0L;
long a = 0L;
try{
Date dt1= new Date(t1);
Date dt2= new Date(t2);
// System.out.println("dt1="+dt1.getTime());
// System.out.println("dt2="+dt2.getTime());
a = dt1.getTime() - dt2.getTime();
b = a/60/60/1000/24;
}catch(Exception e){
System.out.println("exception"+e.toString());
}
return b;
}
}
当b为负数时,A>B 否则 A<B
你可以注释掉String t1 = Endday1.replace('-','/');
String t2 = Beginday2.replace('-','/');
这个默认是比较首字符的ASCII吗的差值
一般要重写这个方法的
实现Comparable <T>接口的对象都可以重写的
LZ可以根据自己的需要重写的
int compare(const char *str1, const char *str2) {
assert(str1 != NULL && str2 != NULL);
while ((*str1 !='\0') && (*str2 != '\0') && (*str1 == *str2)) {
++str1;
++str2;
}
return *str1 - *str2;
}
String strDate2 = "2003-11-12";
Date date1 = DateFormat.parse(strDate1);
Date date2 = DateFormat.parse(strDate2);
int iResult = date1 .compareTo(date2);
if(iResult == 0){
//equal
}
else if(iResult < 0){
//date1 is less than date2
}
else if(iResult >0){
//date1 is greater than date2
}我觉得楼主可能是想比较日期吧,,,看看这个吧
int result=0;
SimpleDateFormat sdf=new SimpleDateFormat( "yyyyMMdd");
try {
Date startDate=sdf.parse(fDate);
Date endDate=sdf.parse(tDate);
result= startDate.compareTo(endDate);
}
catch (ParseException e) {
e.printStackTrace();
}
return result;
}
但是到Java了,直接compareTo就可以了(很简单很傻瓜)。