如何用Java根据日期年月打印该月的日历

Java日历类Calendar练习——寻找休息日并打印日历 Java日历类Calendar练习——寻找休息日并打印日历一、任务概述二、日历类Calendar1、getInstance()2、set()与get()三、思路梳理1、让用户按需求输入日期a、InputMismatchExceptionb、日期限定2、打印日历a、获取用户输入月份的天数b、四、任务拆解1、创建属性(用户输入的年和月,以及两个日历对象)2、获取用户键盘输入的日期3、计算日期差4、计算输入月的1号为周几5、计算输入月的第一个休息日为几号6、打印日历 一、任务概述 某公司软件开发工程师孙工,作息规 阅读详情

打印日历

计算出1900年1月1日至当前日期之间总共间隔多少天,将其除以7取余数,该结果即为当月1号是星期几。提示:1900年1月1日星期一

import java.util.Scanner;

public class TestShowCalendar {

	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);

		// 输入年、月
		System.out.println("输入年份:");
		int year = scanner.nextInt();
		System.out.println("输入月份:");
		int month = scanner.nextInt();

		// 判断平闰年
		int flag;// flag==1是闰年,flag==0是平年
		if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0))
			flag = 1;
		else
			flag = 0;

		// 计算天数
		int days = days_count(year, month, flag);// 记录所输入日期距1990年1月1日总共有多少天

		// 计算该月1日星期几
		int one_week = days % 7;

		// 开始排版
		System.out.println("**************************************************");
		System.out.println("\t\t" + month + "月");
		System.out.println("**************************************************");
		System.out.println("日\t一\t二\t三\t四\t五\t六");

		for (int i = 0; i < one_week; i++) {
			System.out.print("\t");
		}

		int month_days;
		switch (month) {
		case 1:
		case 3:
		case 5:
		case 7:
		case 8:
		case 10:
		case 12:
			month_days = 31;
			break;
		case 2:
			month_days = 28 + flag;
			break;
		default:
			month_days = 30;
		}

		for (int i = 1; i < month_days + 1; i++) {
			System.out.print(i + "\t");
			if ((one_week + i) % 7 == 0)
				System.out.println();
		}

	}

	// 计算天数的方法
	public static int days_count(int year, int month, int flag) {
		int days;
		int year_add = (year - 1900);
		if (year_add < 0)
			year_add = -year_add;
		days = year_add * 365 + (year_add - 1) / 4;// 计算了所输入年份1月1日距1990年1月1日是第几天

		switch (month - 1) {
		case 11:
			days += 30;
		case 10:
			days += 31;
		case 9:
			days += 30;
		case 8:
			days += 31;
		case 7:
			days += 31;
		case 6:
			days += 30;
		case 5:
			days += 31;
		case 4:
			days += 30;
		case 3:
			days += 31;
		case 2:
			days += 28 + flag;
		case 1:
			days += 31;
		case 0:
			days += 1;
			break;
		default:
			System.out.println("请输入正确的月份!");
			break;

		}

		return days;
	}

}

输出示例:
在这里插入图片描述

不过很遗憾这段代码只能准确打印出1900年1日以后的日历,等我找到更好的方法再进行更换。

java 输入年月,显示当月日历 调用calendarUtil.getCalendar( )控制台输出当月日历 立即下载

相关推荐

java编写的日历类程序,输入年份和月份,打印出该月的日历

java编写的日历类程序,输入年份和月份,打印出该月的日历 都是在控制台下输入输出的 例如输入2011年9月份,会输出 日 一 二 三 四 五 六 1 2 3 4 5 6 7 8 9 10 11 12 13 14 ……………………

java 获取当前时间的四种方式

【代码】java 获取当前时间的四种方式。

wuesr的博客 6590

打印指定年月一个月的日历

1.输入年、月,控制台打印出本月所有日期,第一行是“日一二三四五六”,下面的日期与之对应。自动换行,不显示上个月的日期。 2.用红色字体打印星期日这一列 3.保存到txt,打开之后是排列好的,不会乱码 4.用的追加写入,不会覆盖之前存入的内容

Java日历打印

练习遇到的题目,磕磕绊绊写出来了,很多地方很勉强,功能未完善,有时间再来继续进行完善需增加部分:键入日期输出星期,键入日期计算天数。

m0_71429662的博客 934

LM358实战:手把手教你搭建电流检测电路(附电阻选型计算)

本文详细解析了使用LM358运算放大器搭建电流检测电路的全过程,包括基础原理、采样电阻选型、放大电路设计及PCB布局技巧。通过实战案例和精确计算,帮助工程师快速掌握低成本、高精度的电流检测方案,适用于电源管理、电机控制等多种应用场景。

weixin_30872157的博客 451

全国充电站分布数据

CnOpenData推出的充电站数据覆盖全国34个省份的3万条数据,包含充电站名称、省份名称、省份代码、商圈、经纬度等地理信息以及商业类型、评分、消费等衍生信息,能为城市规划、环境科学、市场分析、技术发展和社会经济研究等多个领域提供宝贵的数据支持。

Sunny9qx的博客 4034

java实现打印当前月日历

java实现打印当前月日历

qq_51917627的博客 1113

离线安装ambari 更换spark版本 集成carbondate文档

1、Linux系统环境配置 1.1 配置IP地址 vim /etc/sysconfig/network-script/ifcfg-eth0 “DEVICE”:网卡对应的设备别名,如ifcfg-eth0第一块网卡; “HWADDR”:网卡物理地址; “BOOTPROTO”:网卡获得ip地址的方式,Static(静态 ip地址)dhcp(通过dhcp协议获取ip)bootip通过boot...

weixin_44742962的博客 3037

Java 输入年月日,制作日历

@2、利用Calendar日历类的相关方法直接得到每月第一天的星期、以及每月最大天数,较为简便。2、截取用户输入的对应日期(后面制作日历的时候需要在日历中特别标注出对应的日期)。1、获取用户输入的年月日,使用字符串格式,要求用户按照规定的格式输入年月日。4、打印日历的星期部分,以及将月份天数全部打印,利用\t整齐排布。// 确定第一天是星期几,确定当前月份天数最大值。//格式化日期类,定义输入的年月日格式。//在对应的日期标注*号。//获取用户按格式输入的年月日。//截取相对应的日期。

2301_76663239的博客 1644

用了7年的 source insight 3.5 背景色及字体配置(提升code效率)

在此记录并share用了7年的 source insight 3.5 背景色及字体配置,提升阅读代码效率

Chasing Freedom 7531

golang 线上事故

golang 线上事故 最近公司要做大促的一些活动。并且单量,qps持续上涨。之前使用的是django python 语言做的一个服务端。目前已经部署的国家里面最多的国家会有300+个实例。大促期间还可能会增加一个实例数。这么多的实例部署,回滚的时间都会特变长,除了问题也不好定位。并且如此多的一个机器,连接数* 实例数也会导致DB等其他服务扛不住这么大的并发。所以决定上go服务解决性能问题。 ...

lcf枫的博客 1538

【C++编程题】C++打印日历

打印日历

西木的博客 3128

python爬取巨潮资讯网所有股票年报数据

爬虫获取巨潮资讯网数据

qq_42752524的博客 6126

java输入年月输出日历_Java实现按年月打印日历功能【基于Calendar】

本文实例讲述了Java实现按年月打印日历功能。分享给大家供大家参考,具体如下:import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;public class CalendarBook {public static void m...

weixin_39540020的博客 381

视觉Transformer实战 | Data-efficient image Transformer(DeiT)详解与实现

在计算机视觉领域,Vision Transformer (ViT) 已经证明了纯 Transformer 架构在图像分类任务上的强大能力。然而,ViT 通常需要在大规模数据集上预训练才能达到最佳性能,DeiT (Data-efficient image Transformer) 通过引入一系列训练策略和优化,使得 Transformer 模型能够在相对较小的数据集上取得优异表现。本节将详细介绍 DeiT 的技术原理,并使用 PyTorch 从零开始实现 DeiT 模型。

盼小辉丶的博客 1344

数据分享|2023年OSM道路数据(全国,分省,分市)

首先这个工作非常有必要的,因为我们正常使用的道路的分类都是基于包括城市快速路、城市主干路、城市次干路这个体系的,大家对于这个分类体系应该更熟悉,但是OSM地图的道路分类又不是完全按这个来的,所以非常有必要重新分类;搞清楚道路类型是我们使用道路数据做很多工作的基础,比如我们在使用道路数据的时候,经常需要预估道路的行车速度,而这个速度一般就是根据道路类型来的,比如高架路的车速肯定就比城市支路快很多!下载分为两种情况,第一种是下载小区域的数据,比如下载一个街区的数据,第二种为下载整个中国范围的。

JData_Engineer的博客 4307

java 打印 日历 详细 注解_Java实现按年月打印日历功能【基于Calendar】

本文实例讲述了Java实现按年月打印日历功能。分享给大家供大家参考,具体如下:import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;public class CalendarBook {public static void m...

weixin_35740875的博客 281

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

Java打印万年历

import java.util.Scanner; /* * 星期计算公式 * yearDays = getYearDays(year, month, day); * week = (year-1+(year-1)/4-(year-1)/100+(year-1)/400+yearDays)%7; */ public class Print_Calendar { public stat...

luxin120的博客 330

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

万年历(java)

1. 计算某一天是星期几 import java.util.Scanner; public class Demo1{ public static void main(String[] args){ //要求用户输入一个年月日 计算出用户输入的年月日时星期几 Scanner sc=new Scanner(System.in); System.out.println("请输入年份"); int year=sc.nextInt(); System.out.println("请输入月份");

weixin_45773503的博客 817

JAVA控制台输入年月打印万年历

JAVA控制台输入年月打印万年历 # Jpublic static void main(String[] args) { int sum=0;//该年该月距离1900.1.1的天数 int year=0;//控制台的年份 int month=0;//控制台的月份 int monthCount=0;//该月天数 Scanner sc=new Scanner(System.in); //优化年份 while(true) { System.out.println("请输入年份")

weixin_43868335的博客 354

Java入门——万年历(控制台)

我发誓,我这一次要认真写。 简要说明 编写一个控制台万年历程序。用户输入年份与月份,控制台打印出该月的日历。 (可连续输入打印日历,输入exit退出系统) 简要分析 想要打印该月的日历需要知道以下信息: 该月的天数 该月第一天是周几 月份的天数有四种情况: 大月份31天 小月份30天 闰年2月29天 平年2月28天 计算月第一天是周几的方法: 已知1990年1月1日是周...

weixin_42105893的博客 482

java实现输入年月,输出该月日历

import java.util.Scanner; public class Practice02 { public static void main(String[] args) { //输入年月,输出该月日历 Scanner input = new Scanner(System.in); int year,month,monthDay=0,sumDay=1,weekDay; System.out.print("请输入年份:");

mqd_chan的博客 3186

java 实现根据年月得到这个月的日历

最近在项目中进行考勤打卡的模块的开发,中间的业务涉及到对某年某月的数据统计,特在此做出一个小结,高手可以忽略,不喜勿喷。 根据2020-11-23这种日期格式获取到这个月的日历,如果是过去的月份则返回整个月份的日历,如果是正在进行的月份,则返回日期截止到这个月最新的日期。 ​ public class DateCountUtils { public static void main(String[] args) { // 2、打印出当前月份的工作日日期(条件来源:代码)

曰业而安的博客 1522

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

已知1900年1月1日是星期一,要求打印输入年月的日历。 输出结果格式: 日 一 二 三 四 五 六 1 2 3 4 5 6 7 8 9 10 11 12 13 ...

2987345656@qq.com的博客 1万+

java最简单的打印日历表_java实现打印日历

本文实例为大家分享了java实现打印日历的具体代码,供大家参考,具体内容如下效果图代码:/***需要实现的目标:根据输入的年月打印出本月的日历表*说明:1900年1月1日刚好是星期一,所以需要计算出从1900 年到当前年月的前一个月总*共经历了几天,然后根据每周七天,用总天数除以7取余数,此余数就是上个月所占到星*期几,也就是每月开头有的空格数,然后打印此空格数,在打印此空格数后再依次打印本*月的...

weixin_29064009的博客 5115

java输入年月输出日历_java 输入年月,获取日历表

/*做日历作业:输入一个时间如: 2016-11就显示2016年11月的日历显示*/import java.util.*;class calendar {public static void main(String[] args){System.out.print("请选择年份(大于1990年):");Scanner input = new Scanner(System.in);int year ...

weixin_39553776的博客 2369
上一篇: Mac上如何隐藏桌面上的文件
下一篇: Java--如何用条件运算符来完成分数的等级转换
~祝今在
博客等级 码龄7年 597粉丝 54原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

~祝今在

喝个茶水

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值