You need to enable JavaScript to run this app.
最新活动
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

简单的日历显示Java程序。在for循环中有显示模式条件的问题。

以下是一个简单的日历显示Java程序示例,使用了for循环来显示日历的每一行。

import java.util.Scanner;

public class CalendarDisplay {

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        // 获取用户输入的年份和月份
        System.out.print("请输入年份:");
        int year = scanner.nextInt();
        System.out.print("请输入月份:");
        int month = scanner.nextInt();

        // 获取该月份的第一天是星期几
        int firstDayOfWeek = getFirstDayOfWeek(year, month);

        // 获取该月份的总天数
        int totalDays = getTotalDays(year, month);

        // 打印日历头部
        System.out.println("日\t一\t二\t三\t四\t五\t六");

        // 打印该月份的日历
        for (int i = 1; i <= totalDays; i++) {
            // 在第一天之前打印空格
            if (i == 1) {
                for (int j = 1; j <= firstDayOfWeek; j++) {
                    System.out.print("\t");
                }
            }

            System.out.print(i + "\t");

            // 每到周六换行
            if ((i + firstDayOfWeek) % 7 == 0) {
                System.out.println();
            }
        }
    }

    // 获取某月份的第一天是星期几
    private static int getFirstDayOfWeek(int year, int month) {
        // 使用Zeller公式计算星期几
        if (month < 3) {
            month += 12;
            year--;
        }
        int century = year / 100;
        int yearOfCentury = year % 100;
        int dayOfWeek = yearOfCentury + yearOfCentury / 4 + century / 4 - 2 * century + 26 * (month + 1) / 10;
        dayOfWeek %= 7;
        if (dayOfWeek < 0) {
            dayOfWeek += 7;
        }
        return dayOfWeek;
    }

    // 获取某月份的总天数
    private static int getTotalDays(int year, int month) {
        int[] daysOfMonth = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
        if (month == 2 && isLeapYear(year)) {
            return 29;
        }
        return daysOfMonth[month - 1];
    }

    // 判断某年是否是闰年
    private static boolean isLeapYear(int year) {
        return year % 400 == 0 || (year % 4 == 0 && year % 100 != 0);
    }
}

这个程序首先会要求用户输入年份和月份。然后它会使用getFirstDayOfWeek()函数来获取该月份的第一天是星期几,使用getTotalDays()函数来获取该月份的总天数。

在for循环中,程序会根据第一天是星期几来打印对应数量的空格,然后打印每一天的日期。每到周六,程序会换行打印下一行。

程序使用了isLeapYear()函数来判断某年是否是闰年。这是为了正确处理2月份的天数。

这是一个基本的日历显示程序,你可以根据需要进行修改和扩展。

本文内容通过AI工具匹配关键字智能整合而成,仅供参考,火山引擎不对内容的真实、准确或完整作任何形式的承诺。如有任何问题或意见,您可以通过联系service@volcengine.com进行反馈,火山引擎收到您的反馈后将及时答复和处理。
展开更多
面向开发者的云福利中心,ECS 60元/年,域名1元起,助力开发者快速在云上构建可靠应用

社区干货

阿里巴巴的 Java 开发手册(黄山版)来了

## 0. 阅读完本文你将会学会- 写出更优雅高效的Java代码## 1. 前言周六逛B乎的时候正好刷到这样一个问题 **"Java开发手册(黄山版)怎么样?"**,我仔细一看这不是孤尽老师的著作吗?居然已经更新到了黄山版。上次... 在这篇文章中我将会挑选几条手册中的编程规约做一个简单的导读。**友情提示,文末有手册下载方式哦。**>对软件来说,适当的 规范和标准绝不是消灭代码内容的创造性、优雅性,而是限制过度个性化,以一种普遍认可的...

2022 年每个开发者必知的云原生趋势 | 社区征文

其次云作为一种PaaS(Plarform as a Service, 平台即服务)服务,云上的原住民的整个生命周期都应该是基于云的理念来实现的,那么就需要一套自动化的开发流程来实现。这些是从字面上对Cloud Native的解构,然后我们再... 你会如何设计一个云原生应用程序?你的架构会是什么样子的?你会遵守哪些原则、模式和最佳实践?哪些基础设施和操作问题是重要的?带着这些疑问来看看本节。#### 2.2.1 十二因素如何构建一个云应用?业界广泛接受的...

我与 Android 的故事|社区征文

也能通过修改程序实现简单的UI交互效果,但这仅仅是一个开始,Android系统很庞大,揪住其中某个知识点,都可能需要很多文字来阐述。- 如我们所知,当时kotlin语言还没有普及出来,主流使用的是Java,因此,很有必要学习... **Java的学习路线**:面向对象、三大特性、语法基础、数据类型、运算符、循环控制、内部类、单例设计模式、简单工厂设计模式、接口、数组、集合、IO、多线程、线程同步问题、生产者消费者模式、TCP网络、UDP协议...

2023年 - 我的程序员之旅和成长故事

随着2023年的日历一页页落下,我不禁感慨于这一年对我来说意义非凡的时光。作为一名刚刚起步的Java程序员,我踏上了编码的冒险旅程,收获了知识、友情,也经历了职场的起伏。现在,我很高兴能够与大家分享我的首个年终总结。## 🚀 2.刚出发 - 我的Java之旅🔥今年早些时候,我揣着大学毕业后的梦想,初涉职场,如同一张白纸,准备在Java开发这片广阔的天地中描绘自己的第一笔。从理论到实践,从课本问题到真实挑战,在第一份工作中,我学习...

特惠活动

热门爆款云服务器

100%性能独享,更高内存性能更佳,学习测试、web前端、企业应用首选,每日花费低至0.55元
60.00/1212.00/年
立即购买

域名注册服务

cn/top/com等热门域名,首年低至1元,邮箱建站必选
1.00/首年起32.00/首年起
立即购买

DCDN国内流量包100G

同时抵扣CDN与DCDN两种流量消耗,加速分发更实惠
2.00/20.00/年
立即购买

简单的日历显示Java程序。在for循环中有显示模式条件的问题。-优选内容

阿里巴巴的 Java 开发手册(黄山版)来了
## 0. 阅读完本文你将会学会- 写出更优雅高效的Java代码## 1. 前言周六逛B乎的时候正好刷到这样一个问题 **"Java开发手册(黄山版)怎么样?"**,我仔细一看这不是孤尽老师的著作吗?居然已经更新到了黄山版。上次... 在这篇文章中我将会挑选几条手册中的编程规约做一个简单的导读。**友情提示,文末有手册下载方式哦。**>对软件来说,适当的 规范和标准绝不是消灭代码内容的创造性、优雅性,而是限制过度个性化,以一种普遍认可的...
2022 年每个开发者必知的云原生趋势 | 社区征文
其次云作为一种PaaS(Plarform as a Service, 平台即服务)服务,云上的原住民的整个生命周期都应该是基于云的理念来实现的,那么就需要一套自动化的开发流程来实现。这些是从字面上对Cloud Native的解构,然后我们再... 你会如何设计一个云原生应用程序?你的架构会是什么样子的?你会遵守哪些原则、模式和最佳实践?哪些基础设施和操作问题是重要的?带着这些疑问来看看本节。#### 2.2.1 十二因素如何构建一个云应用?业界广泛接受的...
我与 Android 的故事|社区征文
也能通过修改程序实现简单的UI交互效果,但这仅仅是一个开始,Android系统很庞大,揪住其中某个知识点,都可能需要很多文字来阐述。- 如我们所知,当时kotlin语言还没有普及出来,主流使用的是Java,因此,很有必要学习... **Java的学习路线**:面向对象、三大特性、语法基础、数据类型、运算符、循环控制、内部类、单例设计模式、简单工厂设计模式、接口、数组、集合、IO、多线程、线程同步问题、生产者消费者模式、TCP网络、UDP协议...
2023年 - 我的程序员之旅和成长故事
随着2023年的日历一页页落下,我不禁感慨于这一年对我来说意义非凡的时光。作为一名刚刚起步的Java程序员,我踏上了编码的冒险旅程,收获了知识、友情,也经历了职场的起伏。现在,我很高兴能够与大家分享我的首个年终总结。## 🚀 2.刚出发 - 我的Java之旅🔥今年早些时候,我揣着大学毕业后的梦想,初涉职场,如同一张白纸,准备在Java开发这片广阔的天地中描绘自己的第一笔。从理论到实践,从课本问题到真实挑战,在第一份工作中,我学习...

简单的日历显示Java程序。在for循环中有显示模式条件的问题。-相关内容

社区征文|ChatGPT教我如何面试

提高程序的执行效率。在Java程序中,可以通过实现Runnable接口或继承Thread类来创建和使用多线程。Java还提供了一些机制,例如同步、互斥锁等,来帮助开发人员解决多线程编程中可能遇到的并发问题。###### Q:什么是... 工厂模式通常由一个工厂对象负责创建其他对象。这个工厂对象通过使用一个与创建对象相关的算法来决定应该创建哪种对象。例如,一个简单的工厂模式可能用来创建不同类型的按钮,如果要创建一个新的按钮,只需要给工厂对...

一个 41 岁老程序员的 2023 年总结 - 利用 AI 延长自己的编程寿命 |社区征文

我所的 SAP 公司也在云转型的道路上迈开大步往前走,公司内部也举办了很多轮的 Docker & Kubernetes 等技术培训。我当时已经从服务器端编程的 ABAP 技术栈转到了 Java 和 Node.js,搭建本地开发环境一度成为了我的... `程序员成了自己的掘墓人`之类的言论,但对我而言,我更愿意去积极挖掘 AI 工具们能给程序员的日常工作带来哪些便利,特别是对于我这种年过四旬的老程序员。和我 2007 年一起毕业,参加工作的同学们,如今仍然和我在一...

一种新型的系统设计解决方案:模块树驱动设计

# 一、前言系统设计的核心作用是在业务现实世界和抽象的IT实现之间建立起一道桥梁。与其他行业被物理特性限制所束缚不同,软件世界可以变得无限庞大,而限制软件发展的其实是人的认知能力。所有软件设计服务的目标其实都是管理人的认知,是关于人有限的精力如何学习软件中无限多的知识(Knowledge)的问题。软件行业从传统的瀑布开发模式,过渡到了敏捷开发模式,对于文档,敏捷宣言中说的是“工作的软件高于详尽的文档”,但实际工...

热门爆款云服务器

100%性能独享,更高内存性能更佳,学习测试、web前端、企业应用首选,每日花费低至0.55元
60.00/1212.00/年
立即购买

域名注册服务

cn/top/com等热门域名,首年低至1元,邮箱建站必选
1.00/首年起32.00/首年起
立即购买

DCDN国内流量包100G

同时抵扣CDN与DCDN两种流量消耗,加速分发更实惠
2.00/20.00/年
立即购买

火山引擎 DataTester :让字节“跳动”起来的 A/B 实验平台

可以帮助企业业务在快速迭代的路上,大胆假设、小心求证。 ### DataTester 功能简介- **全域实验** ,可以支持客户端(Android、iOS、Web、H5、WAP、微信小程序)、服务端(Java、Python、Go、Node.js)的实验... 同时可设置不定时循环文案/落地页进行推送,降低单调性。- **可视化编辑** :想进行 A/B 测试却没有研发人员支持?您可利用可视化编辑,以简单的拖移操作,完成页面图片/文本的替换与编辑、元素位移等操作,生成实验方...

拉流转推

前提条件调用接口前,请先完成 Java SDK 的安装及初始化操作 调用示例本节为您介绍拉流转推相关接口的功能和调用示例。 创建拉流转推任务您可以调用 CreatePullToPushTask 接口创建拉流转推任务。详细的参数说明可... 当循环播放模式为有限次循环(CycleMode为0)时为必选参数。 body.setPlayTimes(3); // 推流域名,推流地址(DstAddr)为空时必传;反之,则该参数不生效。 body.setDomain("example.mtime.cn"); // ...

Fastbot 开源版技术原理与架构

文章来源|字节跳动软件工程实验室Repo | github.com/bytedance/Fastbot\_Android **0****1** **问题背景**近年来,移动应用程序的数量呈现爆炸性增长,随之而来的是用户对应用程... 在实际中有两种可能的情况:1)先前的测试运行可能没有覆盖所有的超事件,2)当前测试应用程序版本中添加了一些新的功能。该模式可以帮助扩展模型并优先探索潜的新功能。![picture.image](https://p3-volc-comm...

在字节跳动,一个更好的企业级 SparkSQL Server 这么做

在代码中只需要通过如下的代码方式:```Class.forName("com.mysql.cj.jdbc.Driver");Connection connection= DriverManager.getConnection(DB_URL,USER,PASS);//操作connection.close();```第一,初始化驱动、创建连接,第二,基于连接进行对数据的操作,例如增删改查。可以看到在Java定义的标准接口访问中,先创建一个connection完成存储介质,然后完成connection后续操作。性能问题导致单次请求实时创建connection的性能较...

如何让ChatGPT充当细致入微的Java代码优化工?

*注:本文使用New Bing(GPT4.0)演示* # 一、让他扮演一个Java软件开发者**第一步:我们让ChatGPT扮演一个Java软件开发者的角色*** 提示词插件:地址:ChatGPT BingChat GPT3 Prompt Generator App (Streamlit) -... 降低if和循环嵌套,甚至实现部分设计模式。」![picture.image](https://p3-volc-community-sign.byteimg.com/tos-cn-i-tlddhu82om/5838e18804bf46c68dc7b3983f5046c1~tplv-tlddhu82om-image.image?=&rk3s=8031ce6...

干货 | 在字节跳动,一个更好的企业级SparkSQL Server这么做

访问MySQL的mysql-connector-java启动包,即基于java.sql包下定义的接口,实现了如何去连接MySQL的流程,在代码中只需要通过如下的代码方式:```Class.forName("com.mysql.cj.jdbc.Driver");Connection connectio... 这里还有一个问题需要考虑,那就是用户通过SparkSQL服务器提交过来的是一段SQL代码,而SparkSQL在执行的时候需要向Yarn提交一个Jar去执行,如何实现这个SQL到Jar提交的转换?一个最简单的方式是用户每来一个SQL就执行...

特惠活动

热门爆款云服务器

100%性能独享,更高内存性能更佳,学习测试、web前端、企业应用首选,每日花费低至0.55元
60.00/1212.00/年
立即购买

域名注册服务

cn/top/com等热门域名,首年低至1元,邮箱建站必选
1.00/首年起32.00/首年起
立即购买

DCDN国内流量包100G

同时抵扣CDN与DCDN两种流量消耗,加速分发更实惠
2.00/20.00/年
立即购买

产品体验

体验中心

云服务器特惠

云服务器
云服务器ECS新人特惠
立即抢购

白皮书

一图详解大模型
浓缩大模型架构,厘清生产和应用链路关系
立即获取

最新活动

爆款1核2G共享型服务器

首年60元,每月仅需5元,限量秒杀
立即抢购

火山引擎增长体验专区

丰富能力激励企业快速增长
查看详情

数据智能VeDI

易用的高性能大数据产品家族
了解详情

一键开启云上增长新空间

立即咨询