问题:输入 年 - 月 打印出该月的日历

例如 2019-12

公式:

计算年月日是星期几 如 2019-11-1是星期几
公式:int week=(year-1+(year-1)/4-(year-1)/100+(year-1)/400+days)%7;

Java代码实现:

import java.util.Scanner;public class Ecoh {/**  给定年月如:2019,11,计算这个月有多少天*  闰年  这一年被四百整除or能被4整除但是不能被100整除*/public  static int getMonthDay(int year,int month) {int days=0;switch(month) {case 4:case 6:case 9:case 11:days =30;break;case 1:case 3:case 5:case 7:case 8:case 10:case 12:days=31;break;case 2:if(year%400==0||(year%4==0 && year%100!=0)) {days=29;}else {days=28;}break;default:System.out.println("输入的不合法");break;}return days;}//给定年月,这天是这一年的第多少天public static int getYearDays(int year,int month,int day) {int days=0;for(int i=1;i<month;i++) {days+=getMonthDay(year,i);}days+=day;return days;}/*计算年月日是星期几    如 2019-11-1是星期几*公式:int week=(year-1+(year-1)/4-(year-1)/100+(year-1)/400+days)%7;*/public static int getWeek(int year,int month,int day) {int days= getYearDays(year,month,day);           //调用getYearDaysint week=(year-1+(year-1)/4-(year-1)/100+(year-1)/400+days)%7;    //days-----通过调用getYearDays获得return week;}//星期几就是几个空public  static void printCalendar(int year ,int month) {if(month<=3&&month>=1) System.out.println("Spring");else if(month<=6&&month>=3) System.out.println("Summer");else if(month<=9&&month>=6) System.out.println("Aumutn");else  System.out.println("Winter");System.out.println(" 日\t一\t二\t三\t四\t五\t六 ");System.out.println();int flag=0;int week= getWeek(year,month,1);        //求1号是星期几for(int i=0;i<week;i++) {flag++;System.out. print("\t");}int count=flag;int monthday=  getMonthDay(year,month);for(int j=1;j<=monthday;j++) {System.out.print(j+"\t");count++;if(count%7==0) {System.out.println("\n");}}}public static void main(String[] args) {/*TODO Auto-generated method stub 给定年月日,这天是这一年的第多少天int yeardays = getYearDays(2019,4,5);System.out.println(yeardays);// TODO Auto-generated method stub 给定年月,这个月有多少天int monthdays = getMonthDay(2018,8);System.out.println(monthdays);// TODO Auto-generated method stubint weeks = getWeek(2019,5,5);System.out.println(weeks);System.out.println("例如:2019按“回车”5");Scanner in=new Scanner(System.in);Scanner sc=new Scanner(System.in);printCalendar(in.nextInt(),sc.nextInt());*/Scanner s=new Scanner (System.in);while(true) {System.out.println("\n");String s1=s.nextLine();String []data=s1.split("-");       //split:对字符串进行分割printCalendar(new Integer(data[0]),new Integer(data[1]));}}}

打印日历Java代码实现相关推荐

  1. 日历 java 代码

    package com.hpe.test4; /*  * calendar 的应用  * 输出 2018年六月的日历  */ import java.util.Calendar; public cla ...

  2. 如何以及为什么使用Spoon分析,生成和转换Java代码

    Spoon是分析,生成和转换Java代码的工具. 在本文中,我们将看到通过使用以编程方式处理代码的技术可以实现什么. 我认为这些技术不是很广为人知或使用,这很遗憾,因为它们可能非常有用. 谁知道,即使 ...

  3. Java黑皮书课后题第6章:**6.34(打印日历)编程练习题3.21使用Zeller一致性原理来计算某天是星期几,使用Zeller的算法简化程序清单6-12以获得每月开始的第一天是星期几

    6.34(打印日历)编程练习题3.21使用Zeller一致性原理来计算某天是星期几,使用Zeller的算法简化程序清单6-12以获得每月开始的第一天是星期几 题目 题目描述 编程练习题3.21的Zel ...

  4. JAVA练习:利用JAVA基本语句实现打印日历

    已知1900年1月1日是星期一,要求打印输入年月的日历. 输出结果格式: 日    一    二    三    四    五    六                                 ...

  5. Java实现打印日历

    实现效果如图: 实现代码: package programlist;import java.time.DayOfWeek; import java.time.LocalDate;/*** @Belon ...

  6. 【Java基础】控制台打印日历

    描述 通过Calendar的基本使用,以及对控制台输出内容进行对齐的一些小技巧,在控制台打印出某年某月的一个日历. 一. java.util.Calendar类的使用 在Java类库中有一个类:jav ...

  7. 利用Java Calendar类打印日历

    利用Java Calendar类打印日历 说到日历,我们接触的就多了,每天都在和日历打交道,每年家里都会买日历.那么,大家知道如何用Java打印日历呢?在这里,我说一下如何用Calendar类打印日历 ...

  8. Java使用Calender类实现打印日历(指定月份和年)

    需求: 用户输⼊年⽉,打印这个⽉的⽇历(使⽤Calendar实现) 用户输⼊年份,打印这⼀年的⽇历(使⽤Calendar实现) 思路: 1.获取用户输入的年月 2.将该年月放入Calender对象中 ...

  9. java日期类练习--打印日历+寻找休息日

    练习题目:某林业工人孙工,作息规律为上三天班,休息一天,经常不确定休息日是否是周末.为此,请你开发一个程序,当孙工输入年以及月,以日历方式显示对应月份的休息日,用中括号进行标记(可以查看以前的休息情况 ...

  10. Java教程:如何用控制台打印日历?

    ​ 朋友们大家好,今天我给大家带来一个控制台小程序--打印当月的日历,效果如下图: ​ 笔者运行这个程序的时候是2022年7月30日,所以在日期的30后面加了一个*符号. ​ 这个程序很简单,但有些知 ...

最新文章

  1. python使用get函数在字典中加入键_Python使用字典键作为函数名
  2. 编写程序处理一个 string 类型的 list 容器。在该容器9.27:中寻找一个特殊值,如果找到,则将它删除掉。用 deque容器重写上述程序。
  3. linux c 编程手册,Linux C/C++编程手册查阅方法
  4. (27)css3 2D转换综合案例—卡包效果
  5. 当你负债累累,看不到方向,众叛亲离时,该如何面对?
  6. windows制作docker镜像_.NET Core程序跑在任何有docker的地方
  7. Http协议规范及格式
  8. 关于计算机网络通信协议
  9. 360云服务器合作,360云主机速度(云服务器)
  10. FastStone Capture:Windows系统下小巧好用的宝藏电脑截图软件
  11. 手把手教你关闭iphone系统自动下载(新增IOS11描述性文件地址)
  12. 开机直接进入键盘布局_win8.1系统苹果电脑开机卡在选择键盘布局界面的解决方法...
  13. PAT 甲级1021 Deepest Root
  14. EXT.JS 学习笔记
  15. 数据研究必备:国内40个免费数据源大放送!
  16. 【CreateEvent与SetEvent/ResetEvent】
  17. codeforces C. Two Teams Composing
  18. PyQt5_pyqtgraph蜡烛图
  19. 模拟退火算法(数学建模清风)
  20. [刷题]leetcode\977_有序数组的平方

热门文章

  1. 那些年,我们一起踩过的 “Android 坑”
  2. 博客营销为何这么神奇而不被淘汰的
  3. 快速做出3D人物动画
  4. java List转Map
  5. windows如何安装codeblock
  6. matlab汽车牌的识别,matlab车牌号识别
  7. ajax上传图片的方法,ajax上传图片的方法
  8. 在微型计算机所说的80586,2017年职称计算机考试题库及答案
  9. cefsharp 网页另存为图片,CefSharp获取页面截图
  10. ALTOVA XMLSPY使用,建xml文件,构建xpath和XQuery查询,xml和json格式转换