Here you can find the source of daysInMonthForYear(int commonMonthIndex, int yearInteger)
Parameter | Description |
---|---|
commonMonthIndex | (1=January, 12=December) |
yearInteger | plus=A.D., minus=B.C. |
public static int daysInMonthForYear(int commonMonthIndex, int yearInteger)
//package com.java2s; /* ***** BEGIN LICENSE BLOCK ***** * * Copyright (c) 2001-2014, Kevin Sven Berg * All rights reserved./* ww w. j a v a 2s . co m*/ * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the name of the <organization> nor the * names of its contributors may be used to endorse or promote products * derived from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * * ***** END LICENSE BLOCK ***** */ public class Main { protected static final int[] DaysInMonth = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }; /** * Answer the number of days in the month named monthName in the year yearInteger. * Month index is common use index (1-12). Year can be positive or negative, with * negative yearsTo treated as B.C. * * @param commonMonthIndex (1=January, 12=December) * @param yearInteger plus=A.D., minus=B.C. */ public static int daysInMonthForYear(int commonMonthIndex, int yearInteger) { int monthIndex = commonMonthIndex - 1; return DaysInMonth[monthIndex] + ((monthIndex == 1) ? leapYearBalance(yearInteger) : 0); } /** * Answer 1 if the year yearInteger is a leap year or 0 if it is not * * @param yearInteger int year */ public static int leapYearBalance(int yearInteger) { int adjustedYear = (yearInteger > 0) ? yearInteger : -(yearInteger + 1); if (((adjustedYear % 4) != 0) || (((adjustedYear % 100) == 0) && ((adjustedYear % 400) != 0))) return 0; return 1; } }