用户输入一个时间,判断这个时间是本年的多少天(例:输入2015-1-5,结果是2015年的第5天)

------ Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
/*
 * 本人是刚刚接触java,这些是我学习尝试写的一些java代码。如果有错误的地方,还请指教。
 * 
 * 代码已经运行过,并且能够实现功能。
 * 我的一些系统配置:JDK使用的是1.7版本。开发工具eclipse。
 * 
 * 简介:用户输入一个时间,判断这个时间是本年的多少天(例:输入2015-1-5,结果是2015年的第5天);
 * 
 * 要求:
 * 		1、判断用户输入的年月日是不是合法。
 * 			a、当用户输入的不合法时,提示重新输入。
 * 			b、当用户输入的合法时,打印结果并且退出。
 * 		2、将这些方法单独封装在一起,通过调用实现。
 * 		3、系统默认的年份起始时间是1900年以后。
 * 		4、系统默认采用的月分输出为国内的输入标准,起始值为1。
 * 			说明:后面程序中,使用的月份计算采用的是国际标准,0-11月,相当于国内1-12月。后面将不再说明。
 * 
 * 提示:本次判断输入的年月日是否合法,是在完全输入完成过后在判断的,下次更新在输入的时候就单个判断是否合法。
 * 		并且还可以通过接收字符串的形式,一次输入完成年月日,然后通过切割语句来拆分开,并且转换的整数,最后在比较。
 * 
 * 
 * 输入日期合法性判断方法:
 * 		1、判断年份必须大于1900。
 * 		2、判断月份是3、5、8、10(相当于国内的4、6、9、11)月小,每月30天。
 * 		3、判断月份是0、2、4、6、7、9、11(相当于国内的1、3、5、7、8、10、12)月大,每月31天。
 * 		4、判断月份是1(相当于国内的2月),判断是闰年还是平年,闰年29天,平年28天。
 * 
 * 程序中的方法简介:
 * 		1、date();在testMethod类中。
 * 			功能:用于接收用户的输入,并且打印最终的结果。
 * 		2、boolean judgeDate(int year,byte month,byte day);在testMethod类中。
 * 			功能:判断输入的年份是否合法,返回boolean值
 * 
 * 			
 */

//注:这个文件在mainDemo.java文件中,文件中的方法需要通过调用实现
//---------------------代码部分-------------------------------//
//创建一个包
package examtest;
public class mainDemo {
	public static void main(String[] args) {
		//调用testMethos.java中的date()方法。
		testMethod.date();
	}

}


//注:这个代码部分在tesMethod.java文件中

//---------------------代码部分-------------------------------//
//创建一个包
package examtest;
//导入所需要的包
import java.util.*;
public class testMethod {
	/*
	 * 功能:判断输入的日期是不是合法,
	 * 输入参数:接收年月日,int year,byte month,byte day
	 * 返回值:返回boolean类型数据,当输入的值合法时,返回true,否则false
	 * 
	 */
	public static boolean judgeDate(int year,byte month,byte day){
		Calendar c = Calendar.getInstance();
		//先判断年份和月份是否合法
		if(year>1900 && (month>=0 && month<12)){
			//判断是不是月小
			if(month == 3 || month == 5 || month == 8 || month == 10){
//				如果月小的话,日期的时间限制为1-31
				if(day>0 && day<31){
//					满足要求,将年月日到设置为指定的日期(这里为当前输入的日期),并且结束输入
					c.set(year, month, day);
					return true;
				}
				System.out.println("日期输入错误1!");
				//执行这句,则说明输入的年、月都正确,但是输入的日期不合法。
				return false;
			}
			//判断是不是月大
			else if(month == 0 || month == 2 || month == 4 || month == 6 || month == 7 || month == 9 || month == 11){
//				如果月大的话,日期的时间限制为1-30
				if(day>0 && day<32){
//					满足要求,将年月日到设置为指定的日期(这里为当前输入的日期),并且结束输入
					c.set(year, month, day);
					return true;
				}
				System.out.println("日期输入错误2!");
				//执行这句,则说明输入的年、月都正确,但是输入的日期不合法。
				return false;
			}
//			判断本年是不是闰年,根据是不是闰年来确定day的值是不是合法
			else if(month == 1){
//				设置当前的时间为三月一日,
				c.set(year, month+1,1);
//				将时间往前推一天,就可以获取本年二月的最大值
				c.add(Calendar.DAY_OF_MONTH, -1);
//				System.out.println(c.get(Calendar.DAY_OF_MONTH));
				if(day>0 && day代码及图片下载地址:http://download.csdn.net/detail/lmh820822/8346379

 用户输入一个时间,判断这个时间是本年的多少天(例:输入2015-1-5,结果是2015年的第5天)_第1张图片

你可能感兴趣的:(java程序)