显示年月的java代码_[java]输入年份月份,显示对应月历

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

{

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

{

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

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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值