java编程:输入现在的月份,输入今天几号,计算今年一共过了多少天,这个编程怎么写啊!急。。。。。。。

如题所述

//E.java

import java.util.Scanner;

public class E {

public static void main(String[] args) {
int y,m,d,days,i,d1=0;
System.out.printf("请输入年,月,日:\n");
Scanner in=new Scanner(System.in);
y=in.nextInt();
Scanner in1=new Scanner(System.in);
m=in1.nextInt();
Scanner in2=new Scanner(System.in);
d=in2.nextInt();
days=0;

for(i=1;i<m;i++)
{ switch(i)
{ case 1: case 3: case 5: case 7: case 8: case 10: case 12:d1=31;break;
case 4: case 6:case 9: case 11:d1=30;break;
case 2:if(y%4==0&&y%100!=0||y%400==0) d=29; else d1=28;
}
days+=d1;
}
System.out.printf("%d年%d月%d日是这一年的第%d天。\n",y,m,d,days+d);
}
}追问

是计算今年一共过了多少天。。。。。

追答/* E.java */

import java.util.Scanner;
 
public class E {    
  public static void main(String[] args) {        
    int y,m,d,days,i,d1=0; 
       
    System.out.printf("请输入年,月,日:\n");    
       
    Scanner in=new Scanner(System.in);      
    y=in.nextInt();   
       
    Scanner in1=new Scanner(System.in);     
    m=in1.nextInt();   
 
    Scanner in2=new Scanner(System.in);       
    d=in2.nextInt();   
              
    days=0; 
 
    for(i=1;i<m;i++) {     
       switch(i) {  
           case 1: case 3: case 5: case 7: case 8: case 10:  
                case 12: d1= 31; break;
 
           case 4: case 6:case 9: case 11:d1=30;break; 
 
           case 2:if(y%4==0&&y%100!=0||y%400==0) d=29; else d1=28;         } 
       days+=d1; 
    }
  System.out.printf("截止到%d年%d月%d日,一共过了%d天。\n",y,m,d,days+d);  } 
}
 
/*这个是运行的结果

C:\Users\ttt\Desktop>javac E.java
C:\Users\ttt\Desktop>java E
请输入年,月,日:
2013
9
6
截止到2013年9月6日,一共过了249天。
 
快快给我分数吧*/

 

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-09-06
package lianxi;
import java.util.Scanner;

public class Lianxi {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int year,month,day;
int days = 0;
int d = 0;
int e;
Scanner sca = new Scanner(System.in);
do{
e=0;
System.out.println("输入年:");
year = Integer.parseInt(sca.next());
System.out.println("输入月:");
month = Integer.parseInt(sca.next());
System.out.println("输入天:");
day = Integer.parseInt(sca.next());
if(year<0||month<0||month>12||day<0||day>31){
System.out.println("输入错误");
}
e=1;
}while(e != 1);
for(int i=1;i<month;i++){
switch(i){
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
days = 31;
break;
case 4:
case 6:
case 9:
case 11:
days=30;
break;
case 2:
if((year%400==0)||(year%4 == 0&&year%100!=0)){
days=29;
}else{
days = 28;
}
break;
}
d +=days;

}
System.out.println(year+"-"+month+"-"+day+"今年一共过了"+(d+day)+"天.");
}

}
第几天不就是过了多少天嘛 晕本回答被网友采纳
第2个回答  2013-09-06
public static void main(String[] args) throws ParseException{
        int month, today;
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入月份:");
        month = sc.nextInt();
        System.out.println("请输入日期:");
        today = sc.nextInt();

        Calendar c= Calendar.getInstance();
        c.set(2013, month, today);
        Calendar d = Calendar.getInstance();
        d.set(2013, 12, 31);
        Long time = d.getTimeInMillis()-c.getTimeInMillis();
        Long day = time/(24*60*60*1000);
        
        System.out.println(365-day);
        
    }

第3个回答  2013-09-06
import java.util.Calendar;
import java.util.Scanner;

public class exp2 {
public static void main(String[] args) {
int y, m, d, days, i, d1 = 0;
System.out.printf("请输入月份\n");
Scanner in1 = new Scanner(System.in);
m = in1.nextInt();
System.out.printf("请输入日期\n");
Scanner in2 = new Scanner(System.in);
d = in2.nextInt();
days = 0;
Calendar c = Calendar.getInstance();// 获得系统当前日期
y = c.get(Calendar.YEAR);// 当前年份
for (i = 1; i < m; i++) {
switch (i) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
d1 = 31;
break;
case 4:
case 6:
case 9:
case 11:
d1 = 30;
break;
case 2:
if (y % 4 == 0 && y % 100 != 0 || y % 400 == 0)
d = 29;
else
d1 = 28;
}
days += d1;
}
System.out.printf("%d年%d月%d日是这一年的第%d天。\n", y, m, d, days + d);
}
}

我把楼上的代码修改了一下,测试可行!