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