用Java实现月历输出

import java.util.*;

	public class Calendar_Month {
	      int week;      //存储某月的第一天是周几
	      int []dayofP = {31,28,31,30,31,30,31,31,30,31,30,31};    //平年每月多少天
	      int []dayofR = {31,29,31,30,31,30,31,31,30,31,30,31};    //闰年每月多少天
	      int dayofM;      //所要求月份的最大天数
	      int year,month;      //用于存储年和月的数值
	      GregorianCalendar objC;     //创建一个日历的实例


	      /**无参数的构造方法,获得当前时间*/
	      public Calendar_Month(){
	          objC = new GregorianCalendar();
	      }
	      
	      //设置该月的第一天是周几,以及设置该月的最大天数
	      void setDay(int[] a){
	          //设置该月的第一天是周几
	          if (a.length == 0){
	              objC.set(Calendar.DAY_OF_MONTH,1);
	              week = objC.get(Calendar.DAY_OF_WEEK);
	              month = objC.get(Calendar.MONTH);
	              year = objC.get(Calendar.YEAR);
	          }
	          else{
	              month = a[1];
	              year = a[0];
	              objC.set(year,month-1,1);
	              week = objC.get(Calendar.DAY_OF_WEEK);
	          }
	         //设置该月的最大天数
	          if(objC.isLeapYear(year)){
	              dayofM = dayofR[month - 1];
	          }
	          else{
	              dayofM = dayofP[month - 1];
	          }
	      }
	      /**此方法用于显示日历*/
	      void display(){
	          System.out.println("\t\t\t     " + year + " 年 " + toDaXie(month) + " 月");
	          System.out.println("\t日\t一\t二\t三\t四\t五\t六");
	          int len = week-1;
	          for(int i = 0; i < week-1; i++){
	              System.out.print("\t ");
	          }
	          for (int i = 1; i <= dayofM; i++) {
	              System.out.print("\t"+i);
	              len++;
	              if(len == 7){
	                  System.out.println();
	                  len=0;
	              }
	          }
	      }
	      public String toDaXie(int n){
	    	  switch (n) {
			case 1:
				return "一";
			case 2:
				return "二";
			case 3:
				return "三";
			case 4:
				return "四";
			case 5:
				return "五";
			case 6:
				return "六";
			case 7:
				return "七";
			case 8:
				return "八";
			case 9:
				return "九";
			case 10:
				return "十";
			case 11:
				return "十一";
			case 12:
				return "十二";
			default:
				return " ";
			}
	      }
	      public static void main(String[] args) {
	          Calendar_Month objCa = new Calendar_Month();
	          Scanner scanner = new Scanner(System.in);
	          int[] a = new int[2];
	          a[0] = scanner.nextInt();
	          a[1] = scanner.nextInt();
	          objCa.setDay(a);
	          objCa.display();
	      }
	}

 输出结果为:

2010 5
			     2010 年 五 月
	日	一	二	三	四	五	六
	 	 	 	 	 	 	1
	2	3	4	5	6	7	8
	9	10	11	12	13	14	15
	16	17	18	19	20	21	22
	23	24	25	26	27	28	29
	30	31

 

 

附从网上找的一个程序:StdOut.print和System.out.println()一样功能,可代替

public class Main {   
    public static int getWeek(int yr, int mo, int day) {   
        int a = (14 - mo) / 12, y = yr - a, m = mo + (12 * a) - 2;   
        return (day + y + y / 4 - y / 100 + y / 400 + (31 * m) / 12) % 7;   
    }   
    public static int getMonth(int y, int m) {   
        if (m == 1 || m == 3 || m == 5 || m == 7 || m == 8  
                || m == 10 || m == 12)   
            return 31;   
        if (m == 4 || m == 6 || m == 9 || m == 11)   
            return 30;   
        if (y % 4 == 0 && y % 100 != 0 || y % 400 == 0)   
            return 29;   
        else  
            return 28;   
    }   
    public static void menology() {   
        int year = StdIn.readInt(), month = StdIn.readInt();   
        String[] showMonth = { "一", "二", "三", "四", "五", "六", "七", "八", "九",   
                "十", "十一", "十二" };   
        StdOut.println("    " + year + "年" + showMonth[month - 1] + "月");   
        StdOut.print("日" + " " + "一" + " " + "二" + " " + "三" + " " + "四" + " "  
                + "五" + " " + "六");   
        System.out.println();   
        int m = getMonth(year, month);   
        for (int i = 0; i < m; i++) {   
            int w = getWeek(year, month, (i + 1));   
            if (i == 0) {   
                for (int j = w; j > 0; j--)   
                    StdOut.print("   ");   
            }   
            if (i < 9)   
                StdOut.print(" " + (i + 1) + " ");   
            else  
                StdOut.print((i + 1) + " ");   
            if ((w == 6) || ((i + 1) == m))   
                StdOut.println();   
        }   
  
    }   
    public static void main(String[] args) {   
        menology();   
    }}  

 

2. 计算出1900年1月1日至当前日期之间总共间隔多少天,将其除以7取余数,该结果即为当月第一天是星期几,按日历格式输出 //输入一个日期,2010-10 输出该月的月历: //********************************** // 10月 //********************************** //日 一 二 三 四 五 六 // 1 2 //3 4 5 6 7 8 9 //10 11 12 13 14 15 16 //17 18 19 20 21 22 23 / 阅读详情

相关推荐

Java输出月份日历

利用java语言将输入的日期进行日历输出,标注输入的日期。简单小程序,适合初学者,欢迎交流

接上一个日历,实用java实现输出一年的日历

似乎这避免了重复手动输入的麻烦,所以我们直观的想法是直接加一个for循环,按照顺序直接把12个月输出,无可厚非,我们直接看效果,如图一.二 图一 图二 我们容易发现,单纯的输入1到12月是不行的,首先第一个问题就是,下个月该换行了.........

qq_57484399的博客 1556

用java写的月历界面2

用java写的月历小程序,不是很复杂,功能也不多。可以查看上下月,显示星期几,一般的实验要求应该符合。

java打印该月日历

System.out.println("请输入大于或等于1900的年份");System.out.println("日\t一\t二\t三\t四\t五\t六");System.out.println("请输入正确的月份");

weixin_74066883的博客 318

用JAVA语言写的输出一个日历

任意输入某一年某一月 就会输出这一年这一月的日历

java版的月历

用java编写的简单月历。由于是初学,请各位多多指教!!

java实现输出当前月历

java语言实现通过输入年份和月份,来输出月历 输入格式 请输入年份:2020 请输入月份:2 输出格式

weixin_46120770的博客 1091

java实现输入任意两个日期输出月份数和天数

java实现输入任意两个日期输出月份数和天数,综合考虑闰年、2月等因素,对于整月计算利息或按天数计算利息提供基础工具类。也可以吧内部类独立出来,方便跨包调用,可自行调整。很实用的一个实现。其他百度查到的很多类似方法存在或多或少的缺陷。

java月历_用Java实现月历输出

import java.util.*;public class Calendar_Month {int week; //存储某月的第一天是周几int []dayofP = {31,28,31,30,31,30,31,31,30,31,30,31}; //平年每月多少天int []dayofR = {31,29,31,30,31,30,31,31,30,31,30,31}; /...

weixin_32243793的博客 504

Java万年历,显示所查询的年月的月历

本程序可查询任何年月的月历表,不同于大多数的万年历只能查询1900年以后的月历。

不止于HTTPS请求:用VS2022编译的libcurl玩转文件上传和代理设置

本文详细介绍了如何使用VS2022编译的libcurl库实现文件上传和高级代理配置。通过实战代码示例,展示了多部分表单上传、二进制数据上传以及各种代理设置技巧,帮助C++开发者提升网络编程能力。

weixin_28595749的博客 206

JAVA实现月历的输出【万年历】最新

看了太多Java实现万年历的打印,个人总结了一下,里面代码写的很详细,适合初学者看,其中很多功能也直接封装在方法里面,更方便理解。

优快云_MaDF的博客 1558

Sentinel--哨兵系列数据下载地址及流程更新【202310】

哨兵系列数据下载地址及流程更新。哨兵系列卫星作为哥白尼计划的一部分,主要目标便是对地球的观测任务。哥白尼计划由三部分组成:空间部分(哨兵系列太空任务与其他太空机构任务)、测量部分(提供海洋、大陆表面和大气信息的陆基和机载数据收集网络)、数据管理与全球共享。

twg666的博客 3万+

控制台输入年月输出月历,Java面向对象编程,逻辑清晰

实现输出月历思路: 1.已知1900年1月1日是星期一,而无论某年某月某日,星期几都是按周7天循环,知道当前日期距1900/1/1总天数,用7整除就可以知道是星期几。 2. 而输出某年某月月历就是要知道该月1日是星期几前面就有几个空位,接着格式输出该月的天数就好了 3. 输出月历程序需求: (1)该月天数intgetMonth() 每月天数都是固定的(2月闰年29天平年28天),平年1月到12月分别是:31天,28天,31天,30天,31天,30天,31天,31天,30...

weixin_45824790的博客 1407

AnyLogic 8.8.3 最新版安装指南:从下载到配置的完整流程(附Java环境设置技巧)

本文提供了AnyLogic 8.8.3最新版从下载到配置的完整安装指南,重点解决了跨平台(Windows、macOS、Linux)部署中的常见问题。核心内容详细讲解了Java开发环境(JDK)的精准配置技巧,包括版本选择、系统环境变量设置与验证,确保为仿真建模工作奠定稳固基础。

efc1234567的博客 762

深度学习初探 - 入门 DL 主流框架

这个课程主要是引导大家入门TensorFlow、Theano、Keras 及 Caffe 几个主流的深度学习框架。在课程中有关各种算法的详细推导及思想我们不会做过多的陈诉,旨在通过让同学们动手操作搭建自己的神经网络模型,了解如何使用这些框架解决实际问题。课程会基于每个框架的官方文档,先带大家熟悉框架中基本的定义语法及常用函数(可看成深度模型的小零件),每个实验最后都会综合这些零件搭建一个简易的神经深度网络模型。这个项目十分适合具有一定python编程基础,对人工智能、深度学习感兴趣的同学。Theano。

2401_86435672的博客 1235

编写一个程序,输出一个月的日历。

方法一: import java.util.Calendar; import java.util.Scanner; public class YueLi {    public static void main(String[] args) {   Scanner sc = new Scanner(System.in);   int a = sc.nextInt();//a表示你

xiaoyu714543065的专栏 2443

QEMU源码全解析7 —— QEMU主函数

QEMU源码全解析7 —— QEMU主函数

phmatthaus的专栏 1293

java月历的星期判断_(Android 笔记) Java 输出一页日历(以周一为一周的开始) 以及实现思路概况...

# 实现思路概述> 由于我学 `Java` 是**半路出家,所以一些东西讲的并不标准**,请见谅,很愿意接受大家的批评建议1. 用一个集合(`List`) 储存本页日历的日期信息(年、月、日、是否为本月)2. 实例化日历类 `Calendar````Calendar calendar = Calendar.getInstance();```3. 设置要显示哪年哪月的日历信息```calend...

weixin_29608135的博客 349

TC3XX - MCAL知识点(九):PWM EB-tresos配置说明及代码浅析

脉冲宽度调制(PWM)驱动器负责提供与AUTOSAR指定的PWM信号生成相关的标准服务。PWM通道的底层定时器驱动是GTM (TOM或ATOM片)或CCU6 (T12或T13片)定时器通道。软硬件匹配关系如下:PWM直接引用的是GTM与CCU6模块,然后GTM与CCU6再关联到Port的,根据软硬件匹配关系,也能调用中断来使用,本例子没使用中断。CCU6是一个高分辨率的16位捕获和比较单元,具有特定的应用模式,主要用于交流驱动控制。特殊的工作模式支持控制无刷直流电机使用霍尔传感器或反电动势检测。

梦想技术家 2887

Python爬虫反爬:突破Cloudflare 5秒盾(免费方案,小红书/知乎可用)

这套方案的核心优势是“真实模拟+免费无门槛”无需付费代理、无需复杂JS解密,仅用playwright模拟真实浏览器,即可突破Cloudflare 5秒盾;适配小红书、知乎、豆瓣等主流平台,修改配置即可复用;兼顾易用性和稳定性,新手也能快速上手,企业级场景可通过IP轮换、异步爬取进一步优化。“模拟人类行为到底”——Cloudflare的反爬本质是区分“机器”和“人类”,只要爬虫的浏览器指纹、行为特征与人类一致,就能稳定绕过限制。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 2881

编写一个日期计算程序

编写一个日期计算程序, 完成以下功能: 1)从键盘输入一个月份,在屏幕上输出本年这个月的月历,每星期一行,从星期 日开始,到星期六结束。 (2)从键盘输入一个日期,在屏幕上显示是星期几,也以当年为例。 (3)从键盘输入两个日期,计算这两个日期之间含有多少天。 package Calendar; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.

m0_52988228的博客 2283

基于Simulink的无线充电系统LCC补偿网络建模与控制

本文详细介绍了基于Simulink的无线充电系统LCC补偿网络建模与控制方法。首先分析了LCC补偿网络的恒流输出、软开关实现和抗偏移能力等优势,并对比了不同补偿拓扑特性。随后分步骤讲解了Simulink建模流程,包括LCC主电路构建、关键参数设计、双闭环控制系统实现等核心环节。重点阐述了移相控制策略和软开关验证方法,提供了系统效率计算和抗偏移测试的调试技巧。最后展示了仿真结果,在耦合系数变化20%时,闭环系统仍能保持输出电压稳定在±2%波动范围内。文章还探讨了工程扩展方向,并针对常见问题给出了解决方案,为无

xiaoheshang_123的博客 539

编程珠玑里的日期函数

编程珠玑第三章里有个问题是计算两个给定日子相差的天数;给定某个日期,判断它是星期几,或者说属于一周中的第几天;给定某年某月,打印这个月历 我用JAVA简单实现了一下。   这里有几个关键的问题:要打印这个月历必须知道1、这个月的第一天是星期几;2、这个月共有几天;       对于问题1:可以直接使用JAVA里的Calendar类;我这里使用另外一种方法:已知1800年1月1日是星期3。

昌汉明的专栏 501

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

java语言基本功,简单小程序万年历

项目要求: 从键盘输入年份、月历、日期。 输出这一年,这一月,这一日是星期几。 并打印出这一月的月历表。 举例如下 在这里插入代码片 import java.util.Scanner; public class MyCalendar { static int year; static int month; static int date; public static void main(String[] args) { //1.获取年月日的输入 getInput(); /

weixin_44755408的博客 191

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

Java 编写一个程序输出日历。该程序必须实现按下列方式输出某月信息的方法。该方法的参 数为该月的天数和第一一个星期日的日期。下面是当参数值为31和6时的输出结果:

题目: 编写一个程序输出日历。该程序必须实现按下列方式输出某月信息的方法。该方法的参 数为该月的天数和第一个星期日的日期。下面是当参数值为31和6时的输出结果: import java.util.Scanner; public class abc { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int total = sc.nextInt();//总天数

七七的博客 679

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

上一篇: 病毒扩散模型(Java)
下一篇: JAVA实现矩阵加法乘法
avanry
博客等级 码龄20年 4粉丝 79原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值