0

I am trying to include this piece of code in my Java Class. But the compiler tells me that it can't find Class Calendar. I can't create a class within a class though, can I? Any advice on how I can link this in to the rest of my code? Any advice gratefully received. I feel like I'm banging my head on a brick wall with this at the moment.

{

    int tempDifference = 0;
    int difference = 0;
    Calendar earlier = Calendar.getInstance();
    Calendar later = Calendar.getInstance();
 
    if (y1.compareTo(y2) < 0)
    {
        earlier.setTime(y1);
        later.setTime(y2);
    }
    else
    {
        earlier.setTime(y2);
        later.setTime(y1);
    }
 
    while (earlier.get(Calendar.YEAR) != later.get(Calendar.YEAR))
    {
        tempDifference = 365 * (later.get(Calendar.YEAR) - earlier.get(Calendar.YEAR));
        difference += tempDifference;
 
        earlier.add(Calendar.DAY_OF_YEAR, tempDifference);
    }
 
    if (earlier.get(Calendar.DAY_OF_YEAR) != later.get(Calendar.DAY_OF_YEAR))
    {
        tempDifference = later.get(Calendar.DAY_OF_YEAR) - earlier.get(Calendar.DAY_OF_YEAR);
        difference += tempDifference;
    }
 
    return difference;

Full code here:

public class EmmaDate
{
    
       
    private final int MAXYEAR=2099;
    
    private final int MINYEAR=0;
    
    private String nameOfDay[]=
    {
        "Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"                  //data
        
    };
    
     private String shortNameOfDay[]=
     {
        "Sun","Mon","Tue","Wed","Thu","Fri","Sat"
        
    };
    
     private String nameOfMonth[]=
     {
        "January","February","March","April","May","June",
        "July","August","September","October","November","December"
        
    };
    
    private String shortNameOfMonth[]=
    {
        "Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"
        
    };
    
    private int daysInMonth[]={31,28,31,30,31,30,31,31,30,31,30,31};
    
    private String ordinal[]=
    
    {
        "st","nd","rd","th","th","th","th","th","th","th",        
        "th","th","th","th","th","th","th","th","th","th",
        "st","nd","rd","th","th","th","th","th","th","th",
        "st"
        
    };
        private int cumDays[]= { 0, 31, 59, 90, 120, 151
                                ,181, 212, 243, 273, 304, 334};         //cumulative days
        
   /**
    * Constuctor taking 3 parameters, d (day), m (month)  and y (year in format yyyy)
    */           
   private int year,month,day;
   private int year2,month2,day2;
   
   EmmaDate(int d,int m,int y)  
    
    {
        if(this.valYear(y))
        {
            year=y;
        }
        else
        {
            year=new java.util.Date().getYear()+1900;
        }
        if(this.valMonth(m))
        {
            month=m;
        }
        else
        {
            month=new java.util.Date().getMonth()+1;
        }
        if(this.valDay(d,this.getMonth(),this.getYear()))                             
        {                                               
            day=d;
        }
        else
        {
            day=new java.util.Date().getDay();                                     
        }
    }  
   /**
    * 
    */ 
   
     EmmaDate (int d,int m)
   //overloading  i.e. assumes that if the year is not given we mean this year                                   
    {
        this(d,m,new java.util.Date().getYear()+1900);
    }
    EmmaDate(int d)
    {
        this(d,new java.util.Date().getMonth()+1,
               new java.util.Date().getYear()+1900);
    }
    EmmaDate()
    {
        this(new java.util.Date().getDay(),
             new java.util.Date().getMonth()+1,
             new java.util.Date().getYear()+1900);
    }
    
    EmmaDate (EmmaDate ed)
    {
        this(ed.day,ed.month,ed.year);
    }
    private void setYear(int y)
    {
        int y2=this.getYear();
        if(this.valYear(y))
        {
            year=y;
        }
        else
        {
            year=y2;
        }
    }
    
    public void setMonth(int m )
    {
        int m2=this.getMonth();
        if(this.valMonth(m))
        {
            month=m;
        }
        else
        {
            month=m2;
        }
    }
   
    public void setDay(int d)                                                      
    {
        int d2=this.getDay();
        if(this.valDay(d))
        {
            day=d;
        }
        
        else
        {
            day=d2;
        }
    }
    
   public int getDay()   
   {
       return day;
    }
    public int getMonth()
    {
        return month;
    }
    public int getYear()
    {
        return year;
    }

    public String toString()
    {
        String s;                                                               
        
        if(day<10)
        {
            s="0"+day;
        }
        else
        {
            s=""+day;
        }
       if(month<10)
        {
            s=s+" "+"0"+month;
        }
        else
        {
            s=s+" "+month;
        }
      
        
        if (year<10)
        
        {
            s=s+"0"+" "+year;                                                             
                                                                                    
        }
        
        else
        
        {
            s=s+" "+year;
            
        }
        
       
        return s;
    }
      
    public boolean valDay(int d) 
                                                
    {
        if(d>=1&&d<31)
            return true;
        else
            return false;
    }
    
    public boolean valDay (int d, int m, int y)
    
    {
        if(!valMonth(m))
            return false;
                    
        int dim=daysInMonth[m-1]; 
        if (leapYear(y)&&m==2)
            dim=29;
                 
        if (d>=1&&d<=dim)
        
            return true;
        
        else
        
            return false;
        
    }

    public boolean valMonth(int m)
    {
        if(m>=1&&m<12)
            return true;
        else
            return false;
    }

    public boolean leapYear(int y)
    {
        
        if(y%400==0)
        
            return true;
            
        else
            
            if(y%100==0)
        
                return false;
        
            else
            
                if(y%4==0)
        
                    return true;
            
                    
                else
        
                    return false;
    
}
    public boolean valYear(int y)
    {
        if (y>9999) 
            return false;
        else
            return true;
    }
    public boolean leapYear()
    
    {
    
    return this.leapYear(this.getYear());
    
    }    
 
  
   //public int daysDiff (int d1, int m1, int y1, int d2, int m2, int y2)
   
   {

    int tempDifference = 0;
    int difference = 0;
    Calendar earlier = Calendar.getInstance();
    Calendar later = Calendar.getInstance();
 
    if (y1.compareTo(y2) < 0)
    {
        earlier.setTime(y1);
        later.setTime(y2);
    }
    else
    {
        earlier.setTime(y2);
        later.setTime(y1);
    }
 
    while (earlier.get(Calendar.YEAR) != later.get(Calendar.YEAR))
    {
        tempDifference = 365 * (later.get(Calendar.YEAR) - earlier.get(Calendar.YEAR));
        difference += tempDifference;
 
        earlier.add(Calendar.DAY_OF_YEAR, tempDifference);
    }
 
    if (earlier.get(Calendar.DAY_OF_YEAR) != later.get(Calendar.DAY_OF_YEAR))
    {
        tempDifference = later.get(Calendar.DAY_OF_YEAR) - earlier.get(Calendar.DAY_OF_YEAR);
        difference += tempDifference;
    }
 
    return difference;
    
    //public String dayName (int day, int month, int year)
   
}
}
4
Contributors
6
Replies
7
Views
6 Years
Discussion Span
Last Post by Daffodil_Thursday
0

import statements go before anything else in the .java file (except a package statement). If you want to use API classes like Calendar in your code you must either import them first, or use their fully qualified name (ie java.util.Calendar ) every time.

Edited by JamesCherrill: n/a

0

learn a bit about Java and you'd know the answer to that.
I suggest you reread your entire courseware and the Java tutorial from Sun's website, and actually study what's there.

0

In the class or the applet?

Looking on your code "EmmaDate" need it. Not sure about applet as there is no code

EDIT: LOL 3 replies in same time

Edited by peter_budo: n/a

This question has already been answered. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.