日期:2014-05-20  浏览次数:20695 次

java 格式问题和Calendar类
class Tran
 { 
  public String getTwoDay(String sj1, String sj2)
  {  
  SimpleDateFormat myFormatter = new SimpleDateFormat("yyyy-MM-dd");  
  long day = 0;  
  try {  
java.util.Date date = myFormatter.parse(sj1);  
java.util.Date mydate = myFormatter.parse(sj2);  
day = (date.getTime() - mydate.getTime()) / (24 * 60 * 60 * 1000);  

  catch (Exception e)
  {  
return "";  
  }  
  return day+"" ;  
 
  } 
  public static void main(String[] args)  
   
  {  
  Tran tran=new Tran();
  System.out.println(tran.getTwoDay("2011-12-11", "2003-11-6")); 
  }
  }  

 这是一个计算日期间隔的日期 public String getTwoDay(String sj1, String sj2)
方法申明时把String 换成void就不需要返回值类型了,在调用getTwoDay()方法时,好像也不能赋值了,这和void有关吗?




还有一个Calendar类中 object.set()和Calendar类中object.setTime() 同时输出月份 一个是当月,一个比当月少1月是怎么回事??

------解决方案--------------------
class Tran
 {
public void getTwoDay(String sj1, String sj2)
{
SimpleDateFormat myFormatter = new SimpleDateFormat("yyyy-MM-dd");
long day = 0;
try {
java.util.Date date = myFormatter.parse(sj1);
java.util.Date mydate = myFormatter.parse(sj2);
day = (date.getTime() - mydate.getTime()) / (24 * 60 * 60 * 1000);\
System.out.println( day);
}


public static void main(String[] args)

{
Tran tran=new Tran();
 tran.getTwoDay("2011-12-11", "2003-11-6");
}
}
将String改成void后
在main()调用tran就不能直接输出了
void没有返回值的所以调用时无法直接输出,无法参加运算。
方法有返回值时,在调用是可以将它当做数据进行使用。

没给代码具体不明:在同时获取月份时
Calendar类中 object.set()
Calendar类中object.setTime() 
应该都一样,
有可能是在代码中对日期做了修改
才导致这样。