广告
返回顶部
首页 > 资讯 > 后端开发 > Python >java简单实现自定义日历
  • 421
分享到

java简单实现自定义日历

2024-04-02 19:04:59 421人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

本文实例为大家分享了java自定义日历的具体代码,供大家参考,具体内容如下 效果图: 源码: package com.example; import java.text.Simp

本文实例为大家分享了java自定义日历的具体代码,供大家参考,具体内容如下

效果图:

源码

package com.example;

import java.text.SimpleDateFORMat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
import java.util.Locale;
import java.util.Scanner;

public class Test12 {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入年份!查询范围是 1900-2900");
        int year = scanner.nextInt();
        System.out.println("请输入月份!查询范围是 1-12");
        int month = scanner.nextInt();
        System.out.println("请输入日期!查询范围是1-" + getMonth(month, year));
        int day = scanner.nextInt();

        Calendar calendar = Calendar.getInstance();
        calendar.set(Calendar.YEAR, year);
        calendar.set(Calendar.MONTH, month - 1);
        calendar.set(Calendar.DAY_OF_MONTH, day);

        System.out.println(year + "年" + (isRunYear(year) ? "是闰年" : "不是闰年"));
        System.out.println("本月有" + getMonth(month, year) + "天");
        int totalDays = 0;
        for (int i = 1900; i < year; i++) {
            totalDays += isRunYear(i) ? 366 : 365;
        }
        int nowDays = calendar.get(Calendar.DAY_OF_YEAR);
        totalDays += nowDays;
        System.out.println(year + "-" + month + "-" + day + "距1900年1月1日已有" + totalDays + "天");
        System.out.println(year + "-" + month + "-" + day + "距本年1月1日已有" + nowDays + "天");
        calendar.set(Calendar.DAY_OF_MONTH, 1);
        System.out.println("本月的第一天为" + getFormatTime("EEEE", calendar.getTime()));

        System.out.println("本月日历为:");
        
        // 这里只是简单的输出字符串,假如在 Android Studio 的类似的开发平台中自定义日历的话,可以将泛型 String 换
        // 成相应的 JavaBean 对象来存储数据和做标记,如标记是当月,是否被选中等。        

        List<String> list = new ArrayList<>();

        // 得到本月一号的星期索引
        // 索引从 1 开始,第一个为星期日,减 1 是为了与星期对齐,如星期一对应索引1,星期二对应索引二
        int weekIndex = calendar.get(Calendar.DAY_OF_WEEK) - 1;
        // 拿到上一个月的最后几天的天数
        for (int i = 0; i < weekIndex; i++) {
            list.add("");
        }
        
        int currentDays = getMonth(month, year);
        
        // 拿到当月的天数
        for (int i = 0; i < currentDays; i++) {
            int days = i + 1;
            if (days == day) {
                list.add("@" + days);
            } else {
                list.add(days + "");
            }
        }
        
        // 拿到下个月第一周的天数
        // 先拿到本月最后一天的星期索引
        calendar.set(Calendar.DAY_OF_MONTH, currentDays);
        weekIndex = calendar.get(Calendar.DAY_OF_WEEK) - 1;
        
        for (int i = 0; i < 6 - weekIndex; i++) {
            list.add("");
        }
        
        String[] weeks = {"星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"};
        for (int i = 0; i < weeks.length; i++) {
            System.out.print(getFormatString(weeks[i]));
        }
        
        System.out.println();
        
        int i = 0;
        for (String s : list) {
            System.out.print(getFormatString(s));
            if ((i + 1) % 7 == 0) {
                System.out.println();
            }
            i++;
        }
        System.out.println("谢谢使用!");
    }
    
    public static String getFormatString(String s) {
//        return String.format("%8s", s);
        return s + "\t";
    }
    // 判断是否为闰年
    public static boolean isRunYear(int y) {
        return y % 4 == 0 && y % 100 != 0 || y % 400 == 0;
    }

    public static String getFormatTime(String p, Date t) {
        return new SimpleDateFormat(p, Locale.CHINESE).format(t);
    }
    // 获取当月的天数
    public static int getMonth(int m, int y) {
        switch (m) {
        case 2:
            return isRunYear(y) ? 29 : 28;
        case 4:
        case 6:
        case 9:
        case 11:
            return 30;
        default:
            return 31;
        }
    }
}

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

--结束END--

本文标题: java简单实现自定义日历

本文链接: https://www.lsjlt.com/news/148393.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • java简单实现自定义日历
    本文实例为大家分享了java自定义日历的具体代码,供大家参考,具体内容如下 效果图: 源码: package com.example; import java.text.Simp...
    99+
    2022-11-13
  • Android Studio简单实现自定义日历
    本文实例为大家分享了Android Studio自定义日历的具体代码,供大家参考,具体内容如下 效果图: 目录树 1.DayBean.java用来存储每天的信息 package ...
    99+
    2022-11-13
  • Android实现自定义日历
    自定义日历控件,支持旧历、节气、日期标注、点击操作 (参考网络上的日历控件改写) 注:将下面的四张资源图片拷贝到所建包的下一个image目录中,如Calendar.java 所...
    99+
    2022-06-06
    自定义 Android
  • Java实现简单的日历界面
    本文实例为大家分享了Java实现简单日历界面的具体代码,供大家参考,具体内容如下 请使用JFrame、JPanel、JButton、JLabel和不同的布局管理器,实现如下日历视图。...
    99+
    2022-11-13
  • Android自定义实现日历控件
    本文实例为大家分享了Android自定义实现日历控件的具体代码,供大家参考,具体内容如下 1. Calendar类 2. 布局 创建calendar_layout.xml <...
    99+
    2022-11-12
  • Android自定义日历Calender代码实现
    产品要做签到功能,签到功能要基于一个日历来进行,所以就根据 要求自定义了一个日历 自定义控件相信做android都知道: (1)首先创建一个类,继承一个容器类或者是一个控...
    99+
    2022-06-06
    Android
  • Java如何实现简单的日历界面
    本文小编为大家详细介绍“Java如何实现简单的日历界面”,内容详细,步骤清晰,细节处理妥当,希望这篇“Java如何实现简单的日历界面”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。请使用JFrame、JPanel、...
    99+
    2023-07-02
  • JavaScript怎么实现自定义日历效果
    本篇内容主要讲解“JavaScript怎么实现自定义日历效果”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“JavaScript怎么实现自定义日历效果”吧!实现思路:获取每个月的第一天是星期几,然...
    99+
    2023-06-25
  • JavaScript自定义日历实现签到功能
    本文实例为大家分享了JavaScript自定义日历签到功能的具体代码,供大家参考,具体内容如下 先看下效果图 红色块为已签到的日期,样式可以随意更改,清晰明了,话不多说上代码: &...
    99+
    2022-11-13
  • Android如何自定义实现日历控件
    这篇文章主要介绍Android如何自定义实现日历控件,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!具体内容如下1. Calendar类2. 布局创建calendar_layout.xml<LinearLayou...
    99+
    2023-06-25
  • js实现简单日历效果
    本文实例为大家分享了js实现简单日历效果的具体代码,供大家参考,具体内容如下 ## css模块 <style type="text/css"> *{ ma...
    99+
    2022-11-12
  • Flutter 日历组件简单实现
    目录前言安装效果demo 演示业务使用 headerView使用配置属性DEMO感谢前言 近期有个业务需求,涉及用户付费相关的计算,需要一个日历组件,组件功能如下: 仅支持从明天开始...
    99+
    2022-11-13
    Flutter 日历组件 Flutter 日历
  • Android自定义view实现日历打卡签到
    本文实例为大家分享了Android自定义view实现日历打卡签到的具体代码,供大家参考,具体内容如下 1.说明 自己写一个view实现每天签到的功能,设置背景图片 源码下载 2.效果...
    99+
    2022-11-12
  • android自定义view之实现日历界面实例
    现在网上有很多自定义view实现日历的demo,今天讲一讲如何自己实现这个自定义view。 看一下最终效果图: 在这个自定义view中,我使用了各种奇技淫巧的方法来实现这个日...
    99+
    2022-06-06
    view 界面 Android
  • Android简单实现自定义弹框(PopupWindow)
    一:一般都是先上效果图 二:实现步骤: 1.xml布局实现 <?xml version="1.0" encoding="utf-8"?> &...
    99+
    2022-06-06
    自定义 popupwindow Android
  • Android自定义dialog简单实现方法
    本文实例讲述了Android自定义dialog简单实现方法。分享给大家供大家参考,具体如下: @Override protected void onCreate(Bundl...
    99+
    2022-06-06
    方法 dialog Android
  • 简单谈谈java自定义注解
    Java在1.5开始引入了注解,目前流行的框架都在用注解,可想而知注解的强大之处。以下通过自定义注解来深入了解java注解。一、创建自定义注解package com.sam.annotation;import java.lang.annot...
    99+
    2023-05-31
    java 自定义注解 ava
  • Java自定义异常简单示例
    目录前言一、异常分为哪几种?二、自定义异常1.首先新建一个类2.测试类总结前言 如果程序出现了问题,我们没有做任何处理,最终JVM 会做默认的处理,处理方式有如下两个步骤:...
    99+
    2023-05-15
    java 自定义异常类 java 异常处理 java处理异常的方法
  • Android自定义日历控件实例详解
    为什么要自定义控件 有时,原生控件不能满足我们对于外观和功能的需求,这时候可以自定义控件来定制外观或功能;有时,原生控件可以通过复杂的编码实现想要的功能,这时候可以自定义控件来...
    99+
    2022-06-06
    Android
  • Android自定义对话框的简单实现
    本文实例为大家分享了Android自定义对话框的具体实现代码,供大家参考,具体内容如下 1、定义对话框的布局 <xml version="1.0" encoding="utf-...
    99+
    2022-11-13
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作