公历还是很简单的

  1 import java.util.*;
  2 class  CalendarTest
  3 {
  4     /*先输出提示语句,并接受用户输入的年、月。
  5     根据用户输入的年,先判断是否是闰年。
  6     根据用户输入的年份来判断月的天数。
  7     用循环计算用户输入的年份距1900年1月1日的总天数。
  8     用循环计算用户输入的月份距输入的年份的1月1日共有多少天。
  9     相加计算天数,得到总天数。
 10     用总天数来计算输入月的第一天的星期数。
 11 
 12     根据上值,格式化输出这个月的日历。*/
 13     public static void main(String[] args) 
 14     {
 15 //        System.out.println("Hello World!");
 16 
 17         Scanner sc= new Scanner(System.in);
 18 //*****************************************
 19                                 //先输出提示输入年、月。
 20         System.out.print("输入年份:");
 21             int year=sc.nextInt();
 22         System.out.print("输入月份:");
 23             int month=sc.nextInt();
 24 //*****************************************
 25                                 //是否是闰年。
 26         boolean comLeap=isLeapYear(year);
 27 //*****************************************
 28                                 //月的天数。
 29 
 30 System.out.println(year+"年"+month+"月有"+monthDayNum(month,comLeap)+"天");
 31 
 32                                 //1900年到输入年总天数。
 33     int i=1900 ,j=0;
 34         while (i<year)
 35         {
 36         j+= isLeapYear(i)?366:365;
 37         i++;
 38         }
 39         
 40         System.out.println(year+"年距1900年1月1日已经"+j+"天");
 41 
 42 
 43                                 //计算输入的月份距输入的年份的1月1日共有多少天。
 44 int mDayNum=0;
 45 int a=0;
 46     for (int month1=1;month1<= month ;month1++ )//1月1日到输入月1日天数
 47     { 
 48         mDayNum+=a;
 49         a=monthDayNum(month1,comLeap);
 50         
 51         //累加月天数
 52     }
 53 System.out.println(year+"年到"+month+"月有"+mDayNum+"天");
 54 
 55                                 //相加计算天数,得到总天数。
 56 int zDay=j+mDayNum;
 57 System.out.println(year+"年"+month+"月距1900年1月1日已经"+zDay+"天");
 58 
 59                                 //用总天数来计算输入月的第一天的星期数。
 60 int starDay;
 61 /*if (zDay<1){starDay=1;}
 62 else{starDay=(zDay%7)+1;}*/
 63 starDay=zDay<1 ?1:(zDay%7)+1;
 64 System.out.println("今天是星期"+starDay);                                
                     //根据上值,格式化输出这个月的日历。 65 66 System.out.println("星期日 星期一 星期二 星期三 星期四 星期五 星期六"); 67 68 int hh=0;//记录换行的地点 69 for (int sp=1;sp<=starDay ;sp++)//需要空出位置打印对应星期的日期 70 { 71 System.out.print(" "+"\t"); 72 hh++; 73 } 74 75 for (int l=1;l<=monthDayNum(month,comLeap) ;l++)//打印每月天数 76 { 77 78 System.out.print(" "+l+"\t"); 79 hh++; 80 while (hh==7) 81 {System.out.println(); 82 hh=0; 83 } 84 } 85 } 86 87 //***************************************** 88 //判断是否是闰年。 89 static boolean isLeapYear(int year) 90 { 91 if ((year%4==0&& year%100!=0)||(year%400==0)) 92 {return true; 93 } 94 return false; 95 96 } 97 //***************************************** 98 //根据输入的年份来判断月的天数。 99 static int monthDayNum(int month,boolean comLeap) 100 { 101 int dayNum; 102 if (month>=8){dayNum= month%2==0?31:30;}//月份大于八月且奇数是30天 103 104 else if (month==2){dayNum= comLeap ?29:28;}//2月 用闰年返回值来 赋值天数 105 106 else dayNum=month%2!=0?31:30;//小于七月奇数是31天 107 108 return dayNum; 109 } 110 111 112 }

 

转载于:https://www.cnblogs.com/coldDog/p/6395400.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/284662.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【测绘程序设计】坐标反算神器V1.0(附C/C#/VB源程序)

【拓展阅读】:【测绘程序设计】坐标正算神器V1.0(附C/C#/VB源程序) 一、坐标反算原理 ​坐标反算:已知两点坐标,反求边长和方位角,称为坐标反算。 原理坐标系: 计算公式: 二、C#程序实现 1. 界面设计 2

在二维数组中查找一个数

在一个二维数组中&#xff0c;每一行都按照从左到右递增的顺序排列&#xff0c;每一列也按照从上到下递增的顺序排列。在这样一个序列中查找一个数1 2 8 92 4 9 124 7 10 136 8 11 15例如查找7&#xff0c;就从第一行的最左边查找&#xff0c;9大于7&#xff0c;则9以下的也不用…

ASP.NET Core 6框架揭秘实例演示[01]: 编程初体验

本篇提供的20个简单的演示实例基本涵盖了ASP.NET Core 6基本的编程模式&#xff0c;我们不仅会利用它们来演示针对控制台、API、MVC、gRPC应用的构建与编程&#xff0c;还会演示Dapr在.NET 6中的应用。除此之外&#xff0c;这20个实例还涵盖了针对依赖注入、配置选项、日志记录…

DBeaverEE 21.1.0安装指南

1、 安装jdk11 2、 配置环境变量 将jdk11安装目录加入path&#xff1a;C:\Program Files\Java\jdk-11.0.10\bin3、 安装DBEE 21.1 4、 将dbeaver-agent文件夹复制到DBEE安装目录 5、将DBEE安装目录下的jre目录删除或改名 6、 修改dbeaver.ini文件&#xff0c;在文件最后添加…

跟风学Docker之四:Docker网络解决方案

2019独角兽企业重金招聘Python工程师标准>>> 跟风学Docker之四&#xff1a;Docker网络解决方案 博客分类&#xff1a; docker 前言&#xff1a;前面的部分一直都是单机跑docker&#xff0c;但实际生产环境不可能只用一台来跑。肯定会用到多台&#xff0c;因为他们都…

C++中数字和字符的转换

参考&#xff1a;http://blog.csdn.net/xw20084898/article/details/21939811 http://nnssll.blog.51cto.com/902724/198237/ http://www.cnblogs.com/luxiaoxun/archive/2012/08/03/2621803.html 一、stringstream通常是用来做数据转换的。 1、例如int转string:#include <s…

【测绘程序设计】坐标方位角推算神器(C#版)

本文讲解利用C#语言实现坐标方位角推算,附源码赠送。 1. 神器效果展示 (1)连接角为左角 (2)连接角为右角 2. 方位角推算原理速递 (1)原理示意图

原型模式——创建型模式

2019独角兽企业重金招聘Python工程师标准>>> 思路&#xff1a; 马上又到找工作的时候了&#xff0c;当我们在准备一份份简历的时候有没有考虑过这样一个问题&#xff1f; 面对不同的工作岗位我们需要准备不同的求职简历&#xff0c;但是这样的几份不同的简历中还是有…

如何获取 ASP.NET Core 当前启动地址?

前言上次&#xff0c;我们介绍了配置ASP.NET Core启动地址的多种方法。那么&#xff0c;如何通过代码方式&#xff0c;获取启动后的地址&#xff1f;WebApplication.Urls 对象使用 WebApplication.Urls.Add 方法可以添加启动地址。那么&#xff0c;使用 WebApplication.Urls 应…

【CASS精品教程】CASS9.1查询功能大全(坐标、长度、面积、方位角)

文章目录 1. 查询指定点坐标2. 查询两点距离及方位3. 查询线长4. 查询实体面积CASS9.1中提供了查询指定点坐标、查询两点距离及方位、查询线长、查询实体面积等查询功能,如下图所示: 本文以动画演示的方式,对以上提到的功能进行讲解。 1. 查询指定点坐标 点击【工程应用】…

自定义smokeping告警(邮件+短信)

前段时间接到公司IT同事需求&#xff0c;帮助其配置smokeping的告警功能&#xff0c;之前配置的姿势有些问题&#xff0c;告警有些问题&#xff0c;现在调试OK&#xff0c;在此将关键配置点简单记录下。 关键的配置项主要有&#xff1a; 定义告警规则并配置将告警信息通过管道交…

WPF 实现抽屉菜单

分享一个WPF 实现抽屉菜单抽屉菜单作者&#xff1a;WPFDevelopersOrg原文链接&#xff1a;https://github.com/WPFDevelopersOrg/WPFDevelopers框架使用大于等于.NET40&#xff1b;Visual Studio 2022;项目使用 MIT 开源许可协议&#xff1b;更多效果可以通过GitHub[1]|码云[2]…

selenium 定制启动 chrome 的选项

2019独角兽企业重金招聘Python工程师标准>>> selenium 定制启动 chrome 的选项 博客分类&#xff1a; java 搜索引擎&#xff0c;爬虫 使用 selenium 时&#xff0c;我们可能需要对 chrome 做一些特殊的设置&#xff0c;以完成我们期望的浏览器行为&#xff0c;比如…

平台级 SAAS 架构的基础:统一身份管理系统

业内在用户统一身份认证及授权管理领域&#xff0c;主要关注 4 个方面&#xff1a;集中账号管理&#xff08;Account&#xff09;、集中认证管理&#xff08;Authentication&#xff09;、集中授权管理&#xff08;Authorization&#xff09;和集中审计管理&#xff08;Audit&a…

【ArcGIS Pro微课1000例】0017:ArcGIS Pro 2.8制作炫酷的ETOPO1全球DEM地图

ArcGIS Pro相对于ArcGIS,在制图方面做了很大的提升,做出的地图更加优美,本文讲解基于NOAA的ETOPO1数据全球DEM数据制作炫酷的全球DEM地图,先看效果再教学! 1. 效果展示 全球 澳大利亚大陆

Js中的for in

2019独角兽企业重金招聘Python工程师标准>>> 后台数据&#xff1a; List<Map<String, Object>> uTags query.selectAllList("velocity.userGetTags", map); 前端解析&#xff1a; for(var i in data.content){//由于这里是List[i](Map).IDc…

VMWare 安装 Linux

参考 &#xff1a; http://www.aboutyun.com/thread-6780-1-1.html 这的是很详细。赞一下 我这里就简化一下。 1 下载&#xff1a; VMWare : https://download3.vmware.com/software/wkst/file/VMware-workstation-full-10.0.0-1295980.exe ubuntu : http://www.aboutyun…

【ArcGIS Pro微课1000例】0018:ArcGIS Pro 2.8通过OLE DB与个人数据库建立连接案例

对于个人数据库,Access程序可以直接打开。本文讲解在ArcGIS Pro2.8中通过OLE DB与个人数据库MDB建立联系的方法与过程。 文章目录 1. 个人数据库准备2. OLE DB连接个人数据库1. 个人数据库准备 准备一个个人数据库,在上面右键→复制文件地址。 文件地址为:"C:\test.md…

JAVA生成并导出json文件

将一个list集合转换成json文件并导出&#xff1a; 数据集合&#xff1a;    List<Object> agencyList new ArrayList<Object>();Map<String, Object> agencyMap new HashMap<>();agencyMap.put("agencyName",agencyName);agencyMap.pu…

《ASP.NET Core 6框架揭秘》实例演示[02]:基于路由、MVC和gRPC的应用开发

ASP.NET Core可以视为一种底层框架&#xff0c;它为我们构建出了基于管道的请求处理模型&#xff0c;这个管道由一个服务器和多个中间件构成&#xff0c;而与路由相关的EndpointRoutingMiddleware和EndpointMiddleware是两个最为重要的中间件。MVC和gRPC开发框架就建立在路由基…