既知の年月日はどのように曜日を計算しますか?

2793 ワード

詳細
出力特定日曜日
キーボード入力で3つの整数を入力し、年、月、日の順に表示します.1つだけ入力すると
整数は年を表し、その年が閏年かどうかを判断する必要がある.2つの整数を入力すると、年と月を表し、
その年の月の日数を出力します.3つの整数を入力して年、月、日を表す場合は、この日を出力する必要があります.
曜日.
まず問題の解き方を整理する
1)文字列入力を行う場合は,Stringクラスのsplit()メソッドを用いて,,,"を用いて分割するので,年月日の間にカンマで区切る.それからIntegerを通ります.valueOf()メソッドで、純数値文字列を整数に変換します.
2)まず、年が平年か閏年かを判断してから、月を判断し、最後に日を判断して、その日が曜日であることを算出します.
import java.util.Scanner;

public class day {
	public static void main(String[] args){
		//a[]             ,           
		int [] a ={0,31,29,31,30,31,30,31,31,30,31,30,31};
		//b[]             ,           
		int [] b ={0,31,28,31,30,31,30,31,31,30,31,30,31};
		int week =0;//         
		System.out.println("          :");
		System.out.println("         ,   :' '  ");
		System.out.println("             ,   :' , '  ");
        System.out.println("              ,   :' , , '  ");
		Scanner sc = new Scanner (System.in);
		String s = sc.nextLine();
		String[] c = s.split(",");
		int t = c.length;
		
		//  c     ,  switch    ,          
		switch(t){
		
		//      1 ,       ,        
		case 1:
			Integer year =Integer.valueOf(c[0]);
			if((year%4==0)&&(year%100!=0)||year%400==0){
				System.out.println(year+"   ");
			}else{
				System.out.println(year+"   ");
			}
			break;
			
			//      2 ,           ,              
		case 2:
			Integer year1 =Integer.valueOf(c[0]);
			Integer month1 =Integer.valueOf(c[1]);
			if((year1%4==0)&&(year1%100!=0)||year1%400==0){
			
				int mon=a[month1];
				System.out.println(year1+"  "+month1+"  "+mon+" ");
				
			}else{
			
				int mon=a[month1];
				System.out.println(year1+"  "+month1+"  "+mon+" ");	
			}
			
			break;
			
			//      3 ,           
		case 3:
			Integer year2 =Integer.valueOf(c[0]);
			Integer month2 =Integer.valueOf(c[1]);
			Integer day =Integer.valueOf(c[2]);
			
			int a1=(year2-1968-1)/4;//  year2 1970        
			int a2 = (year2-1970-1)*365+a1; //  month         
			
			//          ,    ,       
			if((a2%4==0)&&(a2%100!=0)||a2%400==0){
				//day2            
				int day2=0;
				//    ,           
				//              ,             ,       ,           
				for(int i =1;i