日付を計算年の最初の日であります

静的な無効メインパブリック(文字列[]引数){ 
	
	するSystem.out.println(「月、日、ユーザ入力を受信する、年の最初の日から計算される」); 
	のSystem.out.println(「\入力T月後、Enterキーを押します、日付を入力してください"); 
	System.out.printlnは(" \「数4年間のn-入力してください); 
	
	ながら、(真の){ 
		int型X; 
		= 0のint日; 
		= 0のint CAL。
		新しい新しいスキャナスキャナ=スキャナ(System.in); 
		int型の年= scanner.nextInt(); 
		boolean型LeapYear = ISLEAPYEAR(年); 
		System.out.printlnは( "月を入力してください:"); 
		int型=月scanner.nextInt() ; 
		
		//うるう年2月29日日
		IF(&& LeapYear月== 2){ 
			System.out.printlnは( "日付を入力してください:"); 
			デイscanner.nextInt =(); 
			。しばらく(日> 29 ||デイ<1 ){ 
				System.out.printlnは( "ミスをし、日付を再入力してください:「);
				scanner.nextInt = X(); 
				日= xと;
			} 
		} 
		
		// -平均2月28日日
		IF(月LeapYear == 2 &&!){ 
			System.out.printlnは( "日付を入力してください:"); 
			デイscanner.nextInt =(); 
			一方(> 28日|| <1日){ 
				System.out.printlnは( "入力エラー、再入力日付:"); 
				X = scanner.nextInt(); 
				日= X; 
			} 
		} 
		
		(月IF%2! = 0){ 
			するSystem.out.println( "日付を入力してください"); 
			日scanner.nextInt =(); 
			一方は、(デイ>日31 || <1){である。
				のSystem.out.println(「入力エラー、再入力日付:「); 
				X = scanner.nextInt(); 
				デイ= X; 
			} 
		} 
		
		IF(= 2月&&!%2 == 0ヶ月){ 
			System.out.printlnはは( "日付を入力してください:"); 
			デーscanner.nextInt =();
			一方(日> 30日|| <1){
	leapYearを返します。
} 
/ **

		
	}
 
 *根据年、月、日、计算总天数
 * @param年
 * @param月
 * @return 
 * / 
パブリック静的INT getDays(INT年、INT月、INT日){ 
	
	int型ARR [] = {31、28、 31、30、31、30、31、30、31、30、31、30}。
	ブールleapYear = ISLEAPYEAR(年); 
	{(leapYear)であれば
		、[1] = 29 ARR 
	} 
	int型の和= 0。
	以下のために(INT i = 0; iは月-1 <; iは++){ 
		合計+ = ARRの[I]。
	} 
	和=和+日。
	合計を返します。
}

コードのロジック:

4で割り切れる400又は100分割で割り切れることができない:(1)入力年、基準うるう年であるか否かを判断します

(2)ケース4に、月チェック

  2月29日があるとき。それは、うるう年2月です

  B。それはうるう年で2月、2月の場合は28日を持っています

  C。うるう年、2で割り切れるが、その後、月は30日を持っています

  D。うるう年、2で割ることができない、そして月は31日あり

それは、2月配列の日数の変化、累積日数サイクルがうるう年であれば数(3)の計算日には、日の月平均数の配列を初期化

  

おすすめ

転載: www.cnblogs.com/xiaobaixie/p/11230676.html