用java语言获取一年的第几天(输入年月日求得该天是在该年的第几天)

用java语言写出一年中的第几天(输入年月日求得该天是在该年的第几天)

	public class Canlendar{
		public static void main(String [] args){
			//创建Scanner扫描器
			Scanner sc=new Scanner(System.in);
			System.out.println("请输入年月日: 例如:2020-1-1");
			String s=sc.nextLine();
			//split方法是将一个字符串分割为若干个子字符串,分割点是**"-"**
			String[] date=s.split("-");
			//使用包装类将String类型转换为int类型
			int year=new Integer(date[0]);
			int month=new Integer(date[1]);
			int day=new Integer(date[2]);
			//调用getYearDays方法
			int days=getYearDays(year,month,day);
			System.out.println(+year+"年"+month+"月"+day+"日是今年的第"+days+"天");
		}
		/*
		(1) 给定年月如:2018-11,计算这个月有多少天
	    30    4   6   9   11
	    31    1   3    5   7   8   10  12
	    28    2平年
	    29    2闰年   能被400整除,   能被4整除但是不能被100整除
	 	*/
	 //创建getMonthDays方法计算每月的天数
 		public static int getMonthDays(int year,int month){
 			int days=-1;
 			//使用switch穿透计算该月的天数
 			switch(month){
 			case 4:
 			case 6:
 			case 9:
 			case 11:
 					days=30;break;
 			case 1:
 			case 3:
 			case 5:
 			case 7:
 			case 8:
 			case 10:
 			case 12:
 					days=31;break;
 			case 2://使用三目运算计算该年是平年还是闰年
 				days=( year % 400 == 0 || year % 4 == 0 && year % 100 !=0)? 29:28;
 			}
 			return days;
 		}
 		/**
    	给定年月日求出这个日子是这一年的第多少天 2020-4-12

	      1   2   3   4
	
	      31  29  31  12
	
	   */
	   //创建getYearDays方法计算这一年中的第几天
	   public static int getYearDays(int year,int month,int days){
	   int totalDays=0;
	   for(int i=1;i<month;i++){
	   //调用getMonthDays方法计算每月的天数进行累加
	   		totalDays+=getMonthDays(year,month);
	   }
	   //totalDays返回值就是该题所求值
	   return totalDays+days;
	   }
}

/*若此文章有纰漏,希望广大网友发现问题之后在评论区积极留言,谢谢!(此文章仅供参考)*/

你可能感兴趣的:(Java基础知识应用,Java)