非常实用的java万年历制作方法

完成万年历的制作需要用到数组、循环等知识。

编程计算输入的月份距离1900年1月1日的天数,求出当前月之前的总天数(不包含当前输入月分的天数,)

编程计算输入月份的第一天是星期几,(公式:星期几=1+天数差%7)。

import java.util.Scanner;
public class Calendar{ 

  public static void main(String[] args){ 

    int year;
    int month;
    int totaldays=0; 

    Scanner sc=new Scanner(System.in); 

    System.out.println("请输入年");
    year=sc.nextInt();
    System.out.println("请输入月");
    month=sc.nextInt(); 

    //计算年的总天数
    for(int i=1900;i<year;i++){
      if((i%400==0)||(i%4==0&&i%100!=0)){
        totaldays+=366;
      }else{
        totaldays+=365;
      }
    } 

    //距离1900年1月1好的总天数
    totaldays+=monthdays(month,year);
    //System.out.println(totaldays);
    System.out.println("-------------"+year+"年"+month+"月日历为---------------");
    //开头
    System.out.println("星期日\t星期一\t星期二\t星期三\t星期四\t星期五\t星期六\t"); 

    //该月第一天是星期几,星期几前面就空几格
    int x=1+totaldays%7; 

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

    int days=monthday(month,year); 

    int i=1;
    while(i<=days){
      System.out.print(i+"   \t");
      if((i+x)%7==0){
        System.out.println();
      }
      i++;
    } 

  }
  //月份总天数
  public static int monthdays(int month,int year){
    int totaldays=0;
    for(int i=1;i<month;i++){
      totaldays+=monthday(i,year);
    }
    return totaldays;
  } 

  //某月天数
  public static int monthday(int month,int year){ 

    if((year%400==0)||(year%4==0&&year%100!=0)){
      int[] arr={0,31,29,31,30,31,30,31,31,30,31,30,31};
      return arr[month];
    }else{
      int[] arr={0,31,28,31,30,31,30,31,31,30,31,30,31};
      return arr[month];
    } 

  } 

}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

您可能感兴趣的文章:

  • Java 实现万年历总结
  • Java基础之打印万年历的简单实现(案例)
  • Java编写多功能万年历程序的实例分享
  • JAVA实现的简单万年历代码
  • java万年历,获取该年月日历表
(0)

相关推荐

  • JAVA实现的简单万年历代码

    本文实例讲述了JAVA实现的简单万年历.分享给大家供大家参考,具体如下: import java.util.Scanner; public class PrintCalendar { public static void main(String[] args) { int years = 0; int month = 0; int days = 0; boolean isRun = false; //從控制台輸入年,月 Scanner input = new Scanner(System.in)

  • Java 实现万年历总结

    一,Java实现万年历的代码: package calendar; import java.util.Scanner;//日历项目 public class RiLi{ public static void main(String[] args){ Scanner A=new Scanner(System.in); System.out.println("请输入年份:"); int year=A.nextInt(); System.out.println("请输入月份:&qu

  • Java编写多功能万年历程序的实例分享

    这里的万年历制作主要用到了Calendar类和GregorianCalendar类,我们先来回顾一下基础知识: 基础部分 一.Calendar类. 1,主要字段: YEAR(年份).MONTH(月份从0开始).DATE(一月的某天).HOUR(指示上午或下午的小时).HOUR_F_DAY(指示一天中的小时.).DAY_OF_WEEK (一个星期中的某天).DAY_OF_MONTH(一个月中的某天).DAY_OF_YEAR(一年中的某天).DAY_OF_WEEK _IN_MONTH(一个月中的第几

  • java万年历,获取该年月日历表

    这篇文章应用java技术输入年份和月份获取该年月日历表,下面通过一段代码给大家做展示: 输入年份和月份,打印出这个月的日历表     1.1900年1月1日是星期一     2.计算输入的年份距离1900年有多少天再计算当年1月1日距这个月有多少天     3.总天数%7得出从星期几开始     注:计算机中的时间最小到1900年,此外UNIX系统认为1970年1月1日0点是时间纪元.     so,在本程序中不考了1900年以前的年份了.有兴趣的可以自己研究下. import java.uti

  • Java基础之打印万年历的简单实现(案例)

    问题:输入年,月,打印对应年月的日历. 示例: 问题分析: 1,首先1970年是Unix系统诞生的时间,1970年成为Unix的元年,1970年1月1号是星期四,现在大多的手机的日历功能只能显示到1970年1月1日这一天; 2,要想打印某年某月的日历,首先应该计算出这个月1号是星期几? 解决1号是星期几? 2.1:先计算出年天数,即截至这一年1月1号的天数,用for循环,从1970年开始,闰年+366,平年+365; 2.2:计算出月天数,即截至本月1号的天数,用for循环,从1月份开始,算出月

  • 非常实用的java万年历制作方法

    完成万年历的制作需要用到数组.循环等知识. 编程计算输入的月份距离1900年1月1日的天数,求出当前月之前的总天数(不包含当前输入月分的天数,) 编程计算输入月份的第一天是星期几,(公式:星期几=1+天数差%7). import java.util.Scanner; public class Calendar{ public static void main(String[] args){ int year; int month; int totaldays=0; Scanner sc=new

  • 精致小巧的java相册制作方法

    本文实例为大家分享了java相册制作方法,供大家参考,具体内容如下 注: 1)html上的图片是静态指定的.当更新了新的图片时必须手工更新.所以使用Servlet读取本地images中的所有图片,动态显示给用户. 2)如果存在中文名的图片,由于get方式无法直接传递中文,会导致出错. 主页面–index.jsp <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"

  • Java在制作jar包时引用第三方jar包的方法

    我用的是Eclipse打包,但在CMD窗口执行的时候报"ActiveMQ.jar中没有主清单属性"错误. 在网上搜了下,这个与MANIFEST.MF文件有关,该文件没有定义MAIN方法所在类的路径,利用好压打开jar包,果然如此.里面只有一行 Manifest-Version: 1.0 需添加Main-Class.在本例中,添加如下: Main-Class: com.luoluo.TestUse.activemq.ActiveMQStateMain 上面,有几点需要注意: 1. Mai

  • 探讨Java验证码制作(下篇)

    接着上篇java验证码制作(上篇)给大家介绍有关java验证码的相关知识! 方法三: 用开源组件Jcaptcha实现,与Spring组合使用可产生多种形式的验证码,JCaptcha 即为Java版本的 CAPTCHA 项目,其是一个开源项目,支持生成图形和声音版的验证码,在生成声音版的验证码时,需要使用到 FreeTTS.而CAPTCHA 全称 Completely Automated Public Turing Test to Tell Computers and Humans Apart,最

  • 探讨Java验证码制作(上篇)

    相信大家对验证码这玩意不会陌生,无论是申请账号还是某些情况下登录时都会要求输入验证码.经过统计,验证码一次验证就成功通过的概率是90%,并不高,那么很多人对于这种降低用户体验度的设计肯定会怀疑他的必要性,但黑格尔说过:凡是合乎理性的东西都是现实的:凡是现实的东西都是合乎理性的.接下来我们来了解一下验证码. 验证码是一种区别用户是计算机还是人的公共全自动程序,他被用于防止恶意破解密码.刷票.论坛灌水,防止黑客通过暴力破解方式不断地登录,应用于银行.社区.论坛.投票系统等等. 废话不多说我们来看看我

  • docker启动Java程序的方法步骤

    创建一个简单的Spring boot web项目 idea工具创建Spring boot web项目,因为是测试,一直next就行. 写一个test API,用来访问,服务端口号可以不用改,我本地改成8701. 程序启动,发现程序不是默认的8080端口了,访问:http://localhost:8701/v1/hello 以上一个简单web项目建好了,下面我们通过docker来运行这个demo项目 第一步,你需要安装docker(这里不做详细步骤). 第二步,我们需要一个有java环境docke

  • android轮播图组件的制作方法

    本文实例为大家分享了android轮播图组件的制作方法,供大家参考,具体内容如下 BannerLayout package com.coral3.common_module.components; import android.content.Context; import android.os.Handler; import android.os.Message; import android.util.AttributeSet; import android.view.LayoutInfla

  • 使用java springboot制作博客管理系统

    目录 前言 需求分析 用户管理. 文章管理. 链接管理. 日志管理. 数据管理. 系统管理. 功能分析 部分表设计 部分代码实现 前言 博客,又译为网络日志. 部落格或部落阁等,是一种通常由个人管理.不定期张贴新的文章的网站. 博客上的文章通常根据张贴时间, 以倒序方式由新到旧排列. 许多博客专注在特定的课题上提供评论或新闻, 其他则被作为比较个人的日记. 一个典型的博客结合了文字.图像. 其他博客或网站的链接. 及其它与主题相关的媒体. 能够让读者以互动的方式留下意见,是许多博客的重要要素.大

  • Java正则表达式——group方法的使用

    目录 Java正则表达式——group方法 例子Demo1 例子Demo2 Java正则表达式校验实例 1 通过正则表达式制作短信模板 2 正则表达式校验身份证 总结 Java正则表达式——group方法 捕获组是把多个字符当一个单独单元进行处理的方法,它通过对括号内的字符分组来创建. 例如,正则表达式 (dog) 创建了单一分组,组里包含"d","o",和"g". 捕获组是通过从左至右计算其开括号来编号.例如,在表达式((A)(B(C))),有

  • java实现从方法返回多个值功能示例

    本文实例讲述了java实现从方法返回多个值功能.分享给大家供大家参考,具体如下: 这里介绍三个方法,使java方法返回多个值. 方法1:使用集合类 方法2:使用封装对象 方法3:使用引用传递 示例代码如下: import java.util.HashMap; import java.util.Map; public class Test { /** * 方法1:使用集合类 (Map以外的集合类也可以随意使用) * 目标:返回一个数组的最大值和最小值 */ public Map<String, I

随机推荐