关于如何知道当月第一天是周几(假如初始阶段为1900年)
、(1900.1.1到你所输入的年份的前一年的总天数+1月份到你所输入的月份之前的一个月的天数+1)%7

package com.at.luming;import java.util.Scanner;/*** @author :Administrator.* @date :2020/2/6 0006* @time:18:49*/
public class Cale {public static void main(String[] args) {Scanner in=new Scanner(System.in);while(true) {System.out.println();menu();//System.out.println();int choose=in.nextInt();if (choose == 0) {System.exit(0);}else if (choose==1) {main1();}else if (choose==2) {main2();}else {System.out.println("输入错误,重新输入");}}}private static void menu() {System.out.println("*****************************************************");System.out.println("请选择:");System.out.println("1:输入当前年月,比如2020 1,以回车键结束打印当前月的日历");System.out.println("2:输入当前年,比如2020 以回车键结束打印当前年的日历");System.out.println("0:退出");System.out.println("*****************************************************");}/*** 判断平闰年* @param year* @return*/private static boolean isLeapyear(int year) {return ((year % 4 == 0)&&(year % 100 != 0))||year % 400 == 0;}/*** 获取该年前一年到1900年的总天数* @param year* @return*/private static int getTotalFromLastyear(int year){int totalDays = 0;for(int i = 1900; i< year; i++){//i:年份totalDays += isLeapyear(i) ? 366 : 365;}return totalDays;}/*** 获取每个月的天数* @param month* @param year* @return*/private static int getNowMonth(int year,int month) {switch (month) {case 1:case 3:case 5:case 7:case 8:case 10:case 12: return 31;case 2:return isLeapyear(year)?29:28;case 4:case 6:case 9:case 11: return 30;default:return 0;}}/*** 获取该月前一月到1月的总天数* @param month* @return*/private static int getTotalFromLastmonth(int year,int month){int totalDays = 0;for(int i=1;i< month;i++){//i:月份totalDays += getNowMonth(year,i);}return totalDays;}private static void print(int week,int year,int month) {int cnt = 0;//计数器,记录空白数和日期数的和//1) 打印表头System.out.println("Sun\t\tMon\t\tTue\t\tWed\t\tThr\t\tFri\t\tSat");//2)打印空白(观察星期与之前空个数之间的规律)for(int i=1;i<= week;i++){System.out.print("\t\t");cnt++;}//3) 打印日历for(int i=1;i<=getNowMonth(year, month);i++) {System.out.print(i + "\t\t");cnt++;//若记录空白数和日期数的和是七的倍数,应该换行输出if (cnt % 7 == 0) {System.out.println();}}}public static void main1() {Scanner input=new Scanner(System.in);//2、从控制台接收用户录入的年份、月份System.out.println("输入年和月:");int year  = input.nextInt();int month  = input.nextInt();//3、获得1900年距离当前年份上一年的总天数int totalDays = getTotalFromLastyear(year);//4、获得当前年份所经过的天数int totalDaysThisYear = getTotalFromLastmonth(year,month);//5、求得给定月份第一天的星期数int week = (totalDays + totalDaysThisYear +1) % 7;//星期日是,week = 0//6、格式化输出日历print(week,year,month);}public static void main2() {Scanner input=new Scanner(System.in);//2、从控制台接收用户录入的年份、月份System.out.println("输入年:");int year  = input.nextInt();for (int i = 1; i <=13 ; i++) {int totalDays = getTotalFromLastyear(year);//4、获得当前年份所经过的天数int totalDaysThisYear = getTotalFromLastmonth(year,i);//5、求得给定月份第一天的星期数int week = (totalDays + totalDaysThisYear +1) % 7;//星期日是,week = 0//System.out.println(totalDays+totalDaysThisYear);//6、格式化输出日历if(i<13) {System.out.println("*******"+i+"月"+"*******");print(week,year,i);System.out.println();}}//3、获得1900年距离当前年份上一年的总天数}}

万年历Java(从1900年开始)相关推荐

  1. java 1900,java识别1900年时间的有关问题【急】

    求救java识别1900年时间的问题[急,在线等] 本帖最后由 kerafan 于 2013-08-12 15:35:23 编辑 在网上找了一个判断给定字符串是否为合法的日期时间字符串的方法.但是这个 ...

  2. 万年历java课程设计报告_java《万年历系统》课程设计报告附源码.doc

    java<万年历系统>课程设计报告附源码.doc 学号<面向对象程序设计>课程设计报告题目:万年历系统专业:计算机科学与技术班级:姓名:学号:指导教师:成绩:计算机与信息工程系 ...

  3. 寿星万年历---java算法实现

    寿星万年历是我在网上见到的一份极高高精度的万年历,其采用先进的算法实现,其精度堪比刘安国教授为中国科学院国家授时中心制作的日梭万年历.但网络上只有javascript版本.于是自己将其翻译为java程 ...

  4. java 简单万年历,java万年历简单实例

    本文实例讲述了JAVA实现的简单万年历. 实现思路具体如下: 已知1900年1月1日星期一判断是否闰年 指定年月返回当月的天数 返回一年的总天数 返回距离1900年1月到指定年月的上一个月的总天数 实 ...

  5. 万年历(Java版)思路解析

    前言 在学习Java过程中,万年历是一道必不可少的练习题.它可以进一步加深我们对Java语言的理解和掌握.这篇我就先讲一下练习万年历的过程中一些思路. 内容要求 能够显示实现1900年以后包括1900 ...

  6. Java项目:日历万年历(java+swing)

    源码获取:博客首页 "资源" 里下载! 功能简介: 万年历 启动类: public class CalendarMainClass { public static void mai ...

  7. 万年历java课程设计报告_java万年历课程设计报告2010

    一.课程设计任务及要求 (1)设计任务: 编写一个Java 万年历程序,实现日期和星期的查询. (2)设计要求: 1.主界面采用边界布局,北面是一个设置年月的控制面板,中间是日历绘制区: 2.单击&q ...

  8. 万年历 java程序_用Java编程输出万年历的功能实现

    1.功能实现 输入1查看上个月日历 输入2查看下个月日历 输入3查看去年本月日历 输入4查看明年本月日历 输入5查看指定月份日历 2.代码所导入的包 import java.text.ParseExc ...

  9. 打印万年历java程序,算法,java代码实现打印万年历

    1 package com.bjsxt.game; 2 import java.util.Scanner; 3 public class Calendar { 4 public static bool ...

最新文章

  1. 安装Live communication server 2005存档服务
  2. java中object转int
  3. 蓝桥杯第六届决赛真题大全解(java版本)
  4. React开发(175):注意在回调里面重新渲染列表
  5. parseFloat(string)
  6. python中0o10_Python基础10—I/O编程
  7. 操作系统相关机器语言基础部分
  8. Jenkins学习三:介绍一些Jenkins的常用功能
  9. 目前最完整的前端框架 Vue.js 全面介绍
  10. Raytrace学习的阶段性总结
  11. Jlink接口引脚定义
  12. 小学英语计算机融合,小学英语作业盒电脑版
  13. AlphaPose(RMPE)区域多人姿态估计理解
  14. 听听那冷雨 -- 余光中
  15. 增大图片(在图像分割、GAN、超分辨中经常用到)
  16. Problem - 1077E - E. Thematic Contests(暴力+二分)
  17. Event-emitter (理解篇)
  18. daily reading
  19. HashMap 如何解决 hash 冲突
  20. Praat脚本-007 | 计算目录里音频或者TextGrid总时长

热门文章

  1. 中华人民共和国个人信息保护法
  2. win10键盘全部没反应_如何处理 win10系统惠普14q-bu101TX改win7的恢复教程 -win10使用教程...
  3. 互联网创业赚钱最好的时期,执行力很重要。
  4. 实习日记(5-18)Socket与MQTT
  5. Swift - 第三方图表库Charts使用详解23(雷达图)
  6. 微信端小区垃圾回收系统
  7. 测试京东万象的Webservice接口
  8. html 动画标签,无HTML标签元素的恐龙动画
  9. 博图sodt定时器的用法_西门子博图定时器指令说明
  10. 牢记昨天的教训_学习新事物时要牢记的科学支持方法