打印萬年歷
阿新 • • 發佈:2017-09-23
距離 月份 while int() system.in tin else if == string
import java.util.Scanner; public class Year { public static void main(String[] args){ int a,o,x,oo,oa,oc,os,ab,ooq,oaq,v; do{ System.out.println("\n***********************"); System.out.println("1.判斷某年是否是閏年\n2.判斷某年某月有多少天\n3.計算某年某月某日距離1990年1月1日的總天數\n4.輸出某年某月的日歷\n0.退出"); System.out.println("請選擇您的需求\n"); Scanner sas=new Scanner(System.in); //從鍵盤上輸入一個字符 os=sas.nextInt(); switch(os){ case 1:System.out.println("請輸入年份"); Scanner scb=new Scanner(System.in); //從鍵盤上輸入一個字符 ab=scb.nextInt(); if(judgeYear(ab)==1) System.out.println("該年是閏年"); else System.out.println("該年不是閏年"); break; case 2: System.out.println("請輸入年份"); Scanner sc=new Scanner(System.in); //從鍵盤上輸入一個字符 a=sc.nextInt(); System.out.println("請輸入月份"); Scanner sa=new Scanner(System.in); //從鍵盤上輸入一個字符 o=sa.nextInt(); x=days(a,o); System.out.println(a+"年"+o+"月有"+x+"天"); break; case 3: System.out.println("請輸入年份"); Scanner saa=new Scanner(System.in); oo=saa.nextInt(); System.out.println("請輸入月份"); Scanner sam=new Scanner(System.in); oa=sam.nextInt(); System.out.println("請輸入日份"); Scanner san=new Scanner(System.in); //從鍵盤上輸入一個字符 oc=san.nextInt(); v=dayfrom1990(oo,oa,oc); System.out.println(v); break; case 4: System.out.println("請輸入年份"); Scanner saaa=new Scanner(System.in); ooq=saaa.nextInt(); System.out.println("請輸入月份"); Scanner samq=new Scanner(System.in); oaq=samq.nextInt(); print(ooq,oaq); break; case 0:break;} }while(os!=0); } public static int judgeYear(int b){ //判斷是否是閏年 int c; if(b%100==0){ c=b%400; } else c=b%4; if(c==0){ return 1;} else{ return 0;} } public static int days(int m,int n){ //判斷某年某月有幾天 int p; p=judgeYear(m); if(n==1|n==3|n==5|n==7|n==8|n==10|n==12) return 31; else if(n==4|n==6|n==9|n==10) return 30; else { if(p==1) return 29; else return 28; } } public static int dayfrom1990(int q,int j,int u){ int r=0; if(q==1990){ for(int i=1; i<= j-1;i++) r+=days(1990,i); r+=u; return r; } else{ for(int i=1990; i<= q-1;i++){ if(judgeYear(i)==1) r+=361; else r+=360; } for(int ii=1; ii<= j-1;ii++) r+=days(q,ii); r+=u; return r; } } public static void print(int as,int bs){ int xq,z=0; System.out.println("-----------"+as+"年"+bs+"月日歷表------------"); xq=dayfrom1990(as,bs,1)%7+1; //計算出該年該月第一天是星期幾 System.out.println("一\t二\t三\t四\t五\t六\t日"); for(int k=1;k<xq;k++){ System.out.print("\t" ); z++; } for(int i=1;i<=days(as,bs);i++){ System.out.print(i+"\t"); z++; if(z%7==0){ System.out.print("\n");} } } }
打印萬年歷