[java]输入年份月份,显示对应月历

来源:互联网 发布:黑马程序员高清壁纸 编辑:程序博客网 时间:2024/04/29 21:10
import java.util.Calendar;import java.util.Scanner;public class WNL {public static void main(String[] args) {Scanner input = new Scanner(System.in);System.out.print("请输入年份 : ");int year = input.nextInt();System.out.print("请输入月份 : ");int month = input.nextInt();Calendar c = Calendar.getInstance();c.set(year, month - 1, 1);int days = c.getActualMaximum(Calendar.DAY_OF_MONTH);System.out.println("Calendar.DAY_OF_MONTH:" + Calendar.DAY_OF_MONTH);System.out.println("days:" + days);int d = c.get(Calendar.DAY_OF_WEEK);System.out.println("Calendar.DAY_OF_WEEK:" + Calendar.DAY_OF_WEEK);System.out.println("d:" + d);System.out.println("您输入日期为: " + year + "年" + month + "月");System.out.println("-----------------------------------------------------\t");System.out.println("天\t一\t二\t三\t四\t五\t六 ");for (int i = 1; i < d; i++) {System.out.print("\t");}for (int i = 1; i <= days; i++) {System.out.print(i + "\t");if (((d - 1) + i) % 7 == 0) {System.out.println();}}System.out.println("\n-----------------------------------------------------");}}


=====================

第二种程序

import java.util.*;class  WanNianLi{ public WanNianLi(){//先输入年月System.out.println("输入年");Scanner in_nian=new Scanner(System.in);int nian=in_nian.nextInt();System.out.println("输入月");Scanner in_yue=new Scanner(System.in);int yue=in_yue.nextInt();//判断输入的年是否闰年boolean flag=panRunNian(nian);//根据输入的月判断月的天数int days=panYueTianShu(yue,flag);//计算输入的年距离1900年1月1号的总天数int sum_days_nian=sumDaysNian(nian);//计算输入的月距离输入该年的1月1号的总天数int sum_days_yue=sumDaysYue(yue,nian);//两总天数相加int sum_days=sum_days_nian+sum_days_yue;//计算输入月的第一天的星期数int zhou_hao_yue_firstday=zhouHaoYueFirstday(sum_days);//格式化输出月历DisplayYueLi(zhou_hao_yue_firstday,days);System.out.println(sum_days+","+sum_days_nian+","+sum_days_yue);}public static void main(String[] args) { new WanNianLi();}public boolean panRunNian(int nian){if(nian%4==0&&nian/100!=0||nian%400==0)return true;return false;}public int panYueTianShu(int yue,boolean flag){switch(yue){case 12:case 10:case 8:case 7:case 5:case 3:case 1:return 31;case 2:if(flag) return 29;else return 28;case 4:case 6:case 9:case 11:return 30;default:return -1;}}public int sumDaysNian(int nian){int sum=0;for(int i=1900;i<nian;i++){if(panRunNian(i))sum+=366;  else sum+=365;}return sum;}public int sumDaysYue(int yue,int nian){int sum=0;boolean flag=panRunNian(nian);for(int i=1;i<yue;i++){ sum+=panYueTianShu(i,flag);}return sum;}public int zhouHaoYueFirstday(int sum_days){int zhou_hao=sum_days%7;return zhou_hao;}public void DisplayYueLi(int zhou_hao_yue_firstday,int days){System.out.println("星期天星期一 星期二星期三 星期四星期五 星期六");for(int i=0;i<zhou_hao_yue_firstday;i++)System.out.print("      ");int sum=zhou_hao_yue_firstday;for(int i=1;i<=days;i++){System.out.printf("%-6d",i);sum++;if(sum%7==0) System.out.println();}}}


0 0
原创粉丝点击