1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

Java Array

Discussion in 'Java' started by lary, May 9, 2011.

  1. lary

    lary New Member

    Joined:
    May 9, 2011
    Messages:
    2
    Likes Received:
    0
    Trophy Points:
    0
    Hi. Please i need help urgently with the question below:

    A date structure has a day/month format. A day ranges from 1 to 30 and a month is one of the months of the year. Specify an array of integers called “day” to hold the values of day, and an array of String called “month” to hold the possible values for a month e.g. January, February, etc. Assume all months have 30 days.
    a) Create and print out on the screen a random date such as 24/December. Note the “/” between the day and the month.
    b) Declare an array called “year” to hold the 360 dates in a year. Initialise a year with the 360 dates, where a date is of the day/month format.

    So far I have answered "a" but kind of confused about "b". I have used a nested for loop to select the 360 days but don't know how to populate the year array with the date. Here is my code so far.​
    Code:
    import java.util.Random;
    
    public class Test {
    private static class Date {
            public int day;
            public String month;
        }
        public static void main(String[] args)
        {
            int[] day={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,20,30};
            String[] month={"January","February","March","April","May","June","July","August","September","October","November","December"};
            Random rand = new Random();
            Date someDate = new Date();
            someDate.day = day[rand.nextInt(day.length)];
            someDate.month = month[rand.nextInt(month.length)];
            System.out.println("Date: "+someDate.day+"/" +someDate.month);
            Date[] year = new Date[360];
    
           
           
           for(int i=0; i<month.length; i++)
           {
               for(int j=0; j<day.length; j++)
               {
                   String date = day[j]+"/"+month[i]+"/2011";
                 }
           }
            
    
        }
    }
    
    
    Please would really appreciate your help.​
     
  2. Avenger625

    Avenger625 New Member

    Joined:
    Feb 1, 2011
    Messages:
    20
    Likes Received:
    2
    Trophy Points:
    0
    Code:
     
     int ctr=0;
           for(int i=0; i<month.length; i++)
           {
               for(int j=0; j<day.length; j++)
               {
                  year[ctr].day=day[j];
                  year[ctr].month=month[i];
                  ctr++;
                 }
           }
    
    then you can override the toString() to get the string representation of the "Date" in the desired format(01/May/2011).

    Code:
    
    public String toString()
    {
        String date=this.day+"/"+this.month+"/"+"2011";
        return date;
    }
    
     
  3. Avenger625

    Avenger625 New Member

    Joined:
    Feb 1, 2011
    Messages:
    20
    Likes Received:
    2
    Trophy Points:
    0
    Code:
    import java.util.Random;
    
    public class Test {
    private static class Date {
            public int day;
            public String month;
    	public String toString()
    	{
        		String date=this.day+"/"+this.month+"/"+"2011";
        		return date;
    	}
        }
        public static void main(String[] args)
        {
            int[] day={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,20,30};
            String[] month={"January","February","March","April","May","June","July","August","September","October","November","December"};
            Random rand = new Random();
            Date someDate = new Date();
            someDate.day = day[rand.nextInt(day.length)];
            someDate.month = month[rand.nextInt(month.length)];
            System.out.println("Date: "+someDate.day+"/" +someDate.month);
            Date[] year = new Date[360];
    
           
           int ctr=0;
           for(int i=0; i<month.length; i++)
           {
               for(int j=0; j<day.length; j++)
               {
                  year[ctr]=new Date();
    		year[ctr].day=day[j];
                  year[ctr].month=month[i];
                  ctr++;
                 }
           }
           
    	// write code here
            
    	System.out.println("A Date in the Year: "+ year[rand.nextInt(year.length)].toString());
        }
    	
    }
    
    If u dont want the toString() in your "Date" structure then you have to write the following code in the main() at "// write code here".

    Code:
            int k=rand.nextInt(year.length);
    	String date=year[k].day+"/"+year[k].month+"/"+"2011";
            
    	System.out.println("Year: "+ date);
    
    The problem (b) was not very clear to me. I would have liked a little more clarifications on it to help you better. I guess, what I understood, is what you wanted to mean!! Hope, this helps.....
     
    shabbir and lary like this.
  4. lary

    lary New Member

    Joined:
    May 9, 2011
    Messages:
    2
    Likes Received:
    0
    Trophy Points:
    0
    Thanks alot. You are a life saver. Am really grateful. the code works perfectly. Exactly what i needed.


    Thanks once again. May God bless you abundantly.
     

Share This Page