Java编译错误 无法将类应用到给定类型
importjava.util.Scanner;publicclassCalendar{publicintcountDays(intmonth,intyear){inty...
import java.util.Scanner;
public class Calendar{
public int countDays(int month,int year){
int y=year;
int m=month;
int days=0;
for(int i=1900;i<=y-1;i++){
if(i%4==0&&i%100!=0||i%400==0){
days+=366;
}else{
days+=365;
}
}
for(int j=1;j<=m-1;j++){
if(m==2){
if(y%4==0&&y%100!=0||y%400==0){
days+=29;
}else{
days+=28;
}
}else{
if(m==4||m==6||m==9||m==11){
days+=30;
}else{
days+=31;
}
}
}
return days;
}
public static void main(String[] args){
// System.out.println("**日历**");
System.out.println("请输入年份:");
Scanner year=new Scanner(System.in);
int y=year.nextInt();
System.out.println("请输入月份:");
Scanner month=new Scanner(System.in);
int m=month.nextInt();
int count=countDays(year,month);
System.out.println("共"+days+"天");
}
}
初学Java,这段代码可能会有很多问题,求大神耐心指导。 展开
public class Calendar{
public int countDays(int month,int year){
int y=year;
int m=month;
int days=0;
for(int i=1900;i<=y-1;i++){
if(i%4==0&&i%100!=0||i%400==0){
days+=366;
}else{
days+=365;
}
}
for(int j=1;j<=m-1;j++){
if(m==2){
if(y%4==0&&y%100!=0||y%400==0){
days+=29;
}else{
days+=28;
}
}else{
if(m==4||m==6||m==9||m==11){
days+=30;
}else{
days+=31;
}
}
}
return days;
}
public static void main(String[] args){
// System.out.println("**日历**");
System.out.println("请输入年份:");
Scanner year=new Scanner(System.in);
int y=year.nextInt();
System.out.println("请输入月份:");
Scanner month=new Scanner(System.in);
int m=month.nextInt();
int count=countDays(year,month);
System.out.println("共"+days+"天");
}
}
初学Java,这段代码可能会有很多问题,求大神耐心指导。 展开
1个回答
展开全部
System.out.println("请输入年份:");
Scanner year=new Scanner(System.in);
int y=year.nextInt();
System.out.println("请输入月份:");
Scanner month=new Scanner(System.in);
int m=month.nextInt();
int count=countDays(year,month);
请看,year和month都是Scanner对象,但是你定义的countDays()函数传递的参数是int,int,但实际传递的是Scanner。
你应该是写错了: int count=countDays(y,m);这样写,写程序一定要细心,而且要善于看错误信息。命令行下已经给你把错误指出来了,只是你没有发现而已。
Scanner year=new Scanner(System.in);
int y=year.nextInt();
System.out.println("请输入月份:");
Scanner month=new Scanner(System.in);
int m=month.nextInt();
int count=countDays(year,month);
请看,year和month都是Scanner对象,但是你定义的countDays()函数传递的参数是int,int,但实际传递的是Scanner。
你应该是写错了: int count=countDays(y,m);这样写,写程序一定要细心,而且要善于看错误信息。命令行下已经给你把错误指出来了,只是你没有发现而已。
追答
静态方法只能直接调用静态方法,所以你可以把countDays方法修改为static的
方法2: int count=Calendar.countDays(y,m);(应该是这么写的,没有验证)
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询