Welcome to the Java Programming Forums

The professional, friendly Java community. 21,500 members and growing!

The Java Programming Forums are a community of Java programmers from all around the World. Our members have a wide range of skills and they all have one thing in common: A passion to learn and code Java. We invite beginner Java programmers right through to Java professionals to post here and share your knowledge. Become a part of the community, help others, expand your knowledge of Java and enjoy talking with like minded people. Registration is quick and best of all free. We look forward to meeting you.

>> REGISTER NOW TO START POSTING

# Thread: Help on this.

1. ## Help on this.

I have these two problems I need to do for a class and am having the hardest time figuring out where to start on them.

1. Write a program that prompts the user to enter a month and year. and displays the number of days in the month. For example, if the user entered month 2 and year 2000, the program should display that of February 2000 has 29 days. (it also talks about remembering about Leap Year.)

2. An ISBN consists of 10 digits d1d2d3d4d5d6d7d8d9d10. The last digit is a checksum, which is calculated from the other nine digits using the following formula:
(d1 X 1 + d2 X 2 + d3 X 3 + d4 X 4 + d5 X 5 + d6 X 6 + d7 X 7 + d8 X 8 + d9 X 9) % 11
If the checksum is 10, the last digit is denoted X according to the ISBN convention. Write a program that prompts the user to enter the first 9 digits and displays the 10-digit ISBN (including leading zeros) Your program should red the input as an integer.

I started a bit of number one, but have no idea where to even begin with 2. Help!

2. ## Re: Help on this.

once you parse month and year as ints, 1) should go easily. I assume that 2000, as you say but without looking it up, is a leap year and ignore the adjustment that they throw in once in a great that's a bit more complicated than february just having 29 days every 4 years--i.e., i'll just assume that feb has 29 days every 4 years:

if (month == 2) {
if (year % 4 == 0) {
System.out.print(29);
else {
System.out.print(28);
}
}
else if (month <= 7) {
if (month % 2 == 1) {
System.out.print(31);
}
else {
System.out.print(30);
}
}
else {
if (month % 2 == 1) {
System.out.print(30);
}
else {
System.out.print(31);
}
}
There are also formulas out there for making interesting date calculations, but if you just need number of days in the month with no more complications than dealing with normal leap years, that should get you there.

On 2) all you really need to realize is that (a + b) % n == ((a % n) + (b % n)) % n

3. ## Re: Help on this.

About #1, Do you have to actually do this yourself or are you allowed to utilize JAVA like it is intended? I ask because there are JAVA standard classes in place to do this sort of thing for you. Specifically, the Calendar (Calendar (Java Platform SE 6)) or GregorianCalendar (GregorianCalendar (Java Platform SE 6)) classes.

Example code to find the number of days in a month using the GregorianCalendar object is below:
int month, year;

//February
month = 1;
//Year 2000
year = 2000;

GregorianCalendar cal = new GregorianCalendar(year,month,1);
System.out.println("There are "+cal.getActualMaximum(GregorianCalendar.DAY_OF_MONTH)+" days in this month");