打印日历Java代码实现
问题:输入 年 - 月 打印出该月的日历
例如 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代码实现相关推荐
- 日历 java 代码
package com.hpe.test4; /* * calendar 的应用 * 输出 2018年六月的日历 */ import java.util.Calendar; public cla ...
- 如何以及为什么使用Spoon分析,生成和转换Java代码
Spoon是分析,生成和转换Java代码的工具. 在本文中,我们将看到通过使用以编程方式处理代码的技术可以实现什么. 我认为这些技术不是很广为人知或使用,这很遗憾,因为它们可能非常有用. 谁知道,即使 ...
- Java黑皮书课后题第6章:**6.34(打印日历)编程练习题3.21使用Zeller一致性原理来计算某天是星期几,使用Zeller的算法简化程序清单6-12以获得每月开始的第一天是星期几
6.34(打印日历)编程练习题3.21使用Zeller一致性原理来计算某天是星期几,使用Zeller的算法简化程序清单6-12以获得每月开始的第一天是星期几 题目 题目描述 编程练习题3.21的Zel ...
- JAVA练习:利用JAVA基本语句实现打印日历
已知1900年1月1日是星期一,要求打印输入年月的日历. 输出结果格式: 日 一 二 三 四 五 六 ...
- Java实现打印日历
实现效果如图: 实现代码: package programlist;import java.time.DayOfWeek; import java.time.LocalDate;/*** @Belon ...
- 【Java基础】控制台打印日历
描述 通过Calendar的基本使用,以及对控制台输出内容进行对齐的一些小技巧,在控制台打印出某年某月的一个日历. 一. java.util.Calendar类的使用 在Java类库中有一个类:jav ...
- 利用Java Calendar类打印日历
利用Java Calendar类打印日历 说到日历,我们接触的就多了,每天都在和日历打交道,每年家里都会买日历.那么,大家知道如何用Java打印日历呢?在这里,我说一下如何用Calendar类打印日历 ...
- Java使用Calender类实现打印日历(指定月份和年)
需求: 用户输⼊年⽉,打印这个⽉的⽇历(使⽤Calendar实现) 用户输⼊年份,打印这⼀年的⽇历(使⽤Calendar实现) 思路: 1.获取用户输入的年月 2.将该年月放入Calender对象中 ...
- java日期类练习--打印日历+寻找休息日
练习题目:某林业工人孙工,作息规律为上三天班,休息一天,经常不确定休息日是否是周末.为此,请你开发一个程序,当孙工输入年以及月,以日历方式显示对应月份的休息日,用中括号进行标记(可以查看以前的休息情况 ...
- Java教程:如何用控制台打印日历?
朋友们大家好,今天我给大家带来一个控制台小程序--打印当月的日历,效果如下图: 笔者运行这个程序的时候是2022年7月30日,所以在日期的30后面加了一个*符号. 这个程序很简单,但有些知 ...
最新文章
- python使用get函数在字典中加入键_Python使用字典键作为函数名
- 编写程序处理一个 string 类型的 list 容器。在该容器9.27:中寻找一个特殊值,如果找到,则将它删除掉。用 deque容器重写上述程序。
- linux c 编程手册,Linux C/C++编程手册查阅方法
- (27)css3 2D转换综合案例—卡包效果
- 当你负债累累,看不到方向,众叛亲离时,该如何面对?
- windows制作docker镜像_.NET Core程序跑在任何有docker的地方
- Http协议规范及格式
- 关于计算机网络通信协议
- 360云服务器合作,360云主机速度(云服务器)
- FastStone Capture:Windows系统下小巧好用的宝藏电脑截图软件
- 手把手教你关闭iphone系统自动下载(新增IOS11描述性文件地址)
- 开机直接进入键盘布局_win8.1系统苹果电脑开机卡在选择键盘布局界面的解决方法...
- PAT 甲级1021 Deepest Root
- EXT.JS 学习笔记
- 数据研究必备:国内40个免费数据源大放送!
- 【CreateEvent与SetEvent/ResetEvent】
- codeforces C. Two Teams Composing
- PyQt5_pyqtgraph蜡烛图
- 模拟退火算法(数学建模清风)
- [刷题]leetcode\977_有序数组的平方