注意:不要将其标记为重复,我知道这是重复的问题,但我没有从it 获得帮助。
我想计算特定年份的一个月中的天数。我看了this,但不正常工作。我试过跟着
public class NumOfDays {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("Enter month: ");
int month = input.nextInt();
System.out.print("Enter year: ");
int year = input.nextInt();
Calendar mycal = new GregorianCalendar(year, month, 1);
System.out.println("Number of days are: " + mycal.getActualMaximum(Calendar.DAY_OF_MONTH));
}
}
我的控制台
Enter month: 2
Enter year: 2000
Number of days are: 31 /// Wrong
和
Enter month: 10
Enter year: 1999
Number of days are: 30 // Correct
我知道还有另外一种方法,即手动计算,但我想像上面那样做。如果我做错了,请告诉我。
P.S:我正在使用JAVA-8。
答案 0 :(得分:10)
由于您使用的是Java 8,我建议使用新的日期/时间API,java.time,特别是其YearMonth
类:
ldply(models, function(x) {r.sq <- summary(x)$r.squared
intercept <- summary(x)$coefficients[1]
beta <- summary(x)$coefficients[2]
data.frame(r.sq, intercept, beta)})
# state r.sq intercept beta
#1 CA 0.230696121 0.4915617 -0.12343947
#2 NY 0.003506936 0.1971734 -0.01227367
答案 1 :(得分:7)
2000年3月还没有31天?正如文档所说(http://docs.oracle.com/javase/8/docs/api/java/util/GregorianCalendar.html#GregorianCalendar-int-int-int-)
,月份为零编辑:我愚蠢,我以为你有一个月的天数。你需要使用getActualMaximum,而不是get。 (http://docs.oracle.com/javase/8/docs/api/java/util/GregorianCalendar.html#getActualMaximum-int-)
答案 2 :(得分:0)
以下将确实有效...
公共类NumberOfDays
{
public static void main(String g [])
{
扫描仪扫描仪=新扫描仪(System.in);
int days,month,year,date;
System.out.println("enter year= ");
year=scanner.nextInt();
System.out.println("enter month= ");
month=scanner.nextInt();
date=1;
Calendar calendar=Calendar.getInstance();
calendar.set(year, (month-1), date);
days=calendar.getActualMaximum(Calendar.DAY_OF_MONTH);
System.out.println("max day= "+days);
}
}