954,574 Members — Technology Publication meets Social Media
Username:
Password:
Lost login information?
Have something to say? Contribute New Article Reply to this Article

how to display one image per day from an array?

Hai..

I need to display one image per day from an array depending upon the day in jsp/servlet.

Intially i am having 5 images in an array.

Then i want to display

sunday --- 1st image
monday--- 2nd image
tuesday -- 3rd image
wednesday--4th image
thursday -- 5th image
friday -- 1st image
Saturday-- 2nd image

number of images is dynamically changing.

if the array has one image.. daily that one image should display.
if the array has two image, then 1st day--- 1st image. 2nd day--- 2nd image, 3rd day--- again 1st image.

Can any one please tell me the logic to do this? waiting for your reply.

Thank you...

Thendral
Newbie Poster
14 posts since Feb 2007
Reputation Points: 10
Solved Threads: 0
 

look at the documentation of Calendar.

jwenting
duckman
Team Colleague
8,392 posts since Nov 2004
Reputation Points: 1,662
Solved Threads: 337
 

Hai,

I didnt find out the logic for this.
Kindly tell me some suggestions.

Thendral
Newbie Poster
14 posts since Feb 2007
Reputation Points: 10
Solved Threads: 0
 

look again... You'll notice you can get the day as a number.
An array is indexed on a number.

Put 2 and 2 together and you'll have insight.

jwenting
duckman
Team Colleague
8,392 posts since Nov 2004
Reputation Points: 1,662
Solved Threads: 337
 

Here is the code. array length is number of records available in the database. that is retrived in a query.

Calendar cal = Calendar.getInstance();
int dayofweek = cal.get(cal.DAY_OF_WEEK);

if(arraylength==2)
{
if(dayofweek==1)
imagenumber=1;
else if(dayofweek==2)
imagenumber=2;
else if(dayofweek==3)
imagenumber=1;
else if(dayofweek==4)
imagenumber=2;
else if(dayofweek==5)
imagenumber=1;
else if(dayofweek==6)
imagenumber=2;
else if(dayofweek==7)
imagenumber=1;
}
else if(arraylength==3)
{
if(dayofweek==1)
imagenumber=1;
else if(dayofweek==2)
imagenumber=2;
else if(dayofweek==3)
imagenumber=3;
else if(dayofweek==4)
imagenumber=1;
else if(dayofweek==5)
imagenumber=2;
else if(dayofweek==6)
imagenumber=3;
else if(dayofweek==7)
imagenumber=1;
}
else if(arraylength==4)
{
if(dayofweek==1)
imagenumber=1;
else if(dayofweek==2)
imagenumber=2;
else if(dayofweek==3)
imagenumber=3;
else if(dayofweek==4)
imagenumber=4;
else if(dayofweek==5)
imagenumber=1;
else if(dayofweek==6)
imagenumber=2;
else if(dayofweek==7)
imagenumber=3;
}
else if(arraylength==5)
{
if(dayofweek==1)
imagenumber=1;
else if(dayofweek==2)
imagenumber=2;
else if(dayofweek==3)
imagenumber=3;
else if(dayofweek==4)
imagenumber=4;
else if(dayofweek==5)
imagenumber=5;
else if(dayofweek==6)
imagenumber=1;
else if(dayofweek==7)
imagenumber=2;
}
else if(arraylength==6)
{
if(dayofweek==1)
imagenumber=1;
else if(dayofweek==2)
imagenumber=2;
else if(dayofweek==3)
imagenumber=3;
else if(dayofweek==4)
imagenumber=4;
else if(dayofweek==5)
imagenumber=5;
else if(dayofweek==6)
imagenumber=6;
else if(dayofweek==7)
imagenumber=1;
}
else if(arraylength==7)
imagenumber = dayofweek;
else if((arraylength>7 && (arraylength<15))
imagenumber=dayofweek+7;
else
imagenumber=arraylength;


I am manually checking array length and assigning the image. I need some dynamic calculation for assigning the image. Also this code works only upto 14 images. I need to display even the array length is 25, 50 etc...

Kindly check it out and give me a solution.

Thendral
Newbie Poster
14 posts since Feb 2007
Reputation Points: 10
Solved Threads: 0
 

ever heard of division?

jwenting
duckman
Team Colleague
8,392 posts since Nov 2004
Reputation Points: 1,662
Solved Threads: 337
 

Hai jwenting!

If you know the logic, Post it...
Dont critize the one who is asking for help.

Thendral
Newbie Poster
14 posts since Feb 2007
Reputation Points: 10
Solved Threads: 0
 

Thendral, in my opinion you are complicating your work. Why not to have 7 images in array and then you have no need for additional calculations. Just find out which day of week is currently and call array position to retrive image.

If you still feel funky then you can setup 31 images and acording to day in the month you call relevant image. Then you have image for each day

peter_budo
Code tags enforcer
Moderator
15,436 posts since Dec 2004
Reputation Points: 2,806
Solved Threads: 902
 

How about something like:

imageId = imageArray.length % dayOfMonth;

Change the formula to suit your needs but I hope you get the logic right.

~s.o.s~
Failure as a human
Administrator
11,938 posts since Jun 2006
Reputation Points: 3,281
Solved Threads: 734
 

Thank you Peter_Budo and ~S.O.S~...

This is my Project requirement. I cant change the array length as Static one ie 7.

I tried with division and modulo operator. but it is not working. Do you have any other calculations? If so kindly help me out.

Thendral
Newbie Poster
14 posts since Feb 2007
Reputation Points: 10
Solved Threads: 0
 

The usual "this doesn't work" is not helpful at all. You need to tell us 'what' is not working and what you have tried out. Post the most recent relevant code which shows the concerned logic and then we can work out something.

~s.o.s~
Failure as a human
Administrator
11,938 posts since Jun 2006
Reputation Points: 3,281
Solved Threads: 734
 
Thendral
Newbie Poster
14 posts since Feb 2007
Reputation Points: 10
Solved Threads: 0
 

Why doesn't this work in your case:

dayCount = (dayOfMonth - 1) % arraySize;
imageId = myImageArray[dayCount];


Oh and BTW, your logic is wrong, the array indexing starts at 0 and not at 1. So your mesh of 'if' statements which use 1 as the starting index is wrong, unless you have something different planned out.

Plus you are using the wrong method to get the day. You should get the day of month, not the day of week otherwise you would always access the first 7 images since DAY_OF_WEEK ranges between 1 to 7. Use this:

GregorianCalendar c = new GregorianCalendar();
int day = c.get(Calendar.DAY_OF_MONTH);
~s.o.s~
Failure as a human
Administrator
11,938 posts since Jun 2006
Reputation Points: 3,281
Solved Threads: 734
 

This article has been dead for over three months

Post: Markdown Syntax: Formatting Help
You