日历

使用Java技术实现电子日历,需求为从控制台输入年份与月份后,控制台输出该月的日历信息。

思路提示:

判断该年份是否是闰年。 计算该月的天数。 计算出该月第一天是星期几。 计算方法,1900-1-1至查询月份第一天过去的天数除以7的余数即查询月份第一天的“星期数”(例如,余数为1则当月第一天是星期一,余数为2则当月第一天是星期2,依次类推,余数0是查询月的第一天就是星期日) 格式化输出该月日历。 注:必须使用的Java语句包括:for / if / switch

package com.hpeu.leon.netclass.practice;

import java.util.Calendar;
import java.util.Scanner;

public class MyCalendar {
    public static int weekDay(Calendar cal)  
	{  
	    int weekday = cal.get(Calendar.DAY_OF_WEEK);  
	    if (weekday == 1)// 西方星期日为第一天,星期一为第二天  
	        weekday = 7;  
	    else  
	        weekday -= 1;  
	    return weekday;  
	}  
	
	public void calendar(int year, int month)  
	{  
	    Calendar firstcal = Calendar.getInstance();  
	    Calendar lastcal = Calendar.getInstance();  
	    System.out.println("\t\t" + year + "年" + month + "月");  
	    System.out.println("周日\t周一\t周二\t周三\t周四\t周五\t周六");  
	    firstcal.set(year, month - 1, 1);// 所求月的第一天  
	    int dateofmonth = firstcal.getActualMaximum(Calendar.DATE);// 获取该月的天数  
	    lastcal.set(year, month - 1, dateofmonth);// 所求月的最后一天  
	  
	    // 获取所求月第一天是星期几,输出是中文的而不是数字的  
	    // SimpleDateFormat fm = new SimpleDateFormat("E");  
	    // System.out.println(fm.format(firstcal.getTime()));  
	  
	    int weekofmonth = firstcal.getActualMaximum(Calendar.WEEK_OF_MONTH);// 获取该月的星期数  
	    String[][] week = new String[weekofmonth][7];  
	    int firstday = MyCalendar.weekDay(firstcal); // 获取所求月第一天是星期几  
	    int lastday = MyCalendar.weekDay(lastcal); // 获取所求月最后一天是星期几  
	    int m = 1, f = 1;// f的作用主要是判断是否需要将第一个星期归到中间几个星期一起计算  
	    int j;  
	    // 第一个星期  
	    if (firstday == 7)  
	    {  
	        f = 0;  
	        } else  
	    {  
	        for (j = 0; j < firstday; j++)  
	        {  
	            week[0][j] = " ";  
	            System.out.print(week[0][j] + "\t");  
	        }  
	        for (j = firstday; j < 7; j++)  
	        {  
	            week[0][j] = m + "";  
	            m++;  
	            System.out.print(week[0][j] + "\t");  
	        }  
	        System.out.println();  
	    }  
	    // 中间的几个星期  
	    for (int i = f; i < weekofmonth - 1; i++)  
	    {  
	        for (j = 0; j < 7; j++)  
	        {  
	            week[i][j] = m + "";  
	            m++;  
	            System.out.print(week[i][j] + "\t");  
	        }  
	        System.out.println();  
	    }  
	    // 最后一个星期  
	    if (lastday == 7)  
	    {  
	        week[weekofmonth - 1][0] = m + "";  
	        System.out.print(week[weekofmonth - 1][0] + "\t");  
	    } else  
	    {  
	        for (j = 0; j <= lastday; j++)  
	        {  
	            week[weekofmonth - 1][j] = m + "";  
	            m++;  
	            System.out.print(week[weekofmonth - 1][j] + "\t");  
	        }  
	    }  
	}  
	
	

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		MyCalendar mycal = new MyCalendar();  
	    Scanner input = new Scanner(System.in);  
	    System.out.println("<<<<<<<<<<<<<<欢迎使用万年历>>>>>>>>>>>>>>");  
	    System.out.print("请选择年份:");  
	    int year = input.nextInt();  
	    System.out.print("请选择月份:");  
	        int month = input.nextInt();  
	    mycal.calendar(year, month);  
	}

}

转载于:https://my.oschina.net/u/3804571/blog/1649150

Primavera P6 Calendars 全局日历和项目日历Calendar Primavera P6 日历特性和功能是项目和进度管理的强大工具。在这里我们将讨论 Primavera P6 中三种最常见的日历类型中的两种:全局日历和项目日历。 Primavera P6 日历的第三种类型是资源日历,它非常专业,在项目中不常用。 Primavera P6 日历至关重要,因为它们确定指定为非工作日的特定日期,例如公司假期或周末。再此我将演示在 Primavera P6 中设置全局日历和项目日历的方法。 阅读详情

相关推荐

jsp日历

仿照windows10的日历做了一个网页版的日历,效果如下: 界面比较简陋,凑合能用 思路很简单,就是计算出本月有多少天,上个月有多少天,然后算出来本月第一天是星期几,然后再根据这个用上个月剩下的那几天填充空白部分 项目地址: 代码如下: `` package calendar; import java.io.IOException; import java.io.PrintWriter; im...

include_heqile的博客 2196

第五部分 自定义的Calendar接口示例

本文展示了一个基于Java Calendar类的日历工具类实现,包含获取年/月/日、上月/下月信息、星期几以及各月天数等功能。主要方法包括:getYear()获取年份,getMonth()获取月份(0-11),getLastMonth()/getNextMonth()计算相邻月份,getMonthDays()获取当月天数,以及获取当月首尾日、相邻月首尾日的星期几等。通过Calendar实例的克隆和日期操作,实现了不改变原日历对象的安全计算。该工具类可用于开发日历应用程序时处理日期相关逻辑。

ywl470812087的博客 12万+

SAP中工厂日历与计划日历的关系分析

前面一篇刚好讲到计划日历。在梳理过程中发现其实计划日历是有前提条件的,其中的工作日是如何定义的?是周一至周五还是一周七天都是工作日。这些并不是在计划日历中定义的。而是在工厂日历中定义好后,将工厂日历再分配给工厂。而计划日历就是基于工厂来应用的。 尝试从后台找到工厂应用的工厂日历; 找到工厂对应的工厂日历为Z6; 事务SCAL打到工厂日历Z6 打开Z6工厂日历查看详细配置,发现其工作日配置为周一到周日; 至此,可以了解工厂日历的定义是一周7天都是工作日,工厂日历分配给工厂,计划日历是

专注SAP应用技术文章写作,致力于拉近用户与系统间的距离; 4661

日历软件使用教程:以 Outlook 日历、谷歌日历、苹果日历为例

本文以 Outlook、谷歌和苹果日历为例,详细地介绍了日历软件的各种基本功能和使用技巧,内容包括四个部分:日历的作用及其与提醒事项的区别、日历的功能、日历的可用性和通用性、日历的协作。

Xovee 1万+

PySide6 vs PyQt6:新手如何根据Python版本选择GUI库?附版本兼容性测试

本文针对Python GUI开发新手,详细对比了PySide6与PyQt6的核心差异,并提供了基于Python 3.8至3.12等不同版本的兼容性实测数据与选择建议。文章重点分析了版本选择策略,帮助开发者根据自身Python环境、项目需求(如与matplotlib集成)及许可证考量,做出最合适的决策,并附有安装验证与避坑指南。

weixin_29094539的博客 703

Unity微信小游戏资源管理实战:YooAsset的Tag与Group策略精讲

本文深入解析了在Unity微信小游戏开发中,如何利用YooAsset的Tag与Group策略进行精细化资源管理。通过实战案例,详细阐述了如何通过Tag实现核心资源的必下与额外资源的按需加载,并借助Collector的合理打包策略,实现热更新包体最小化,从而有效解决加载慢、更新流量大的痛点,最终提升玩家体验。

weixin_29012677的博客 270

iphone 日历 灰色_将iPhone假期日历更改为本地日历

iphone 日历 灰色I usually use iPhone in the English language. However, I find the iPhone calendar app includes a US holiday calendar subscribed while I am not in US and displaying US holidays in the iPhon...

cuma2369的博客 1863

武汉大学朱玉贤院士团队再发Nature Genetics,阐述棉花独特折叠胚胎形成的分子调控与演化机制

武汉大学朱玉贤院士团队再发Nature Genetics,阐述棉花独特折叠胚胎形成的分子调控与演化机制。

Pangenes的博客 1335

outlook 日历共享_如何共享您的Outlook日历

outlook 日历共享Sharing your Outlook calendar is easy, but how you do, it matters if you don’t want the people you share it with struggling to access it. Let’s take a look at how to share an Outlook calen...

5456

PID详解

1、什么是PID及其作用 设定一个输出目标,反馈系统传回输出值,如与目标不一致,则存在一个误差,PID 根据此误差调整输入值,直至输出达到设定值. 为什么需要PID呢,比如控制温度,我们需要设置一个要达到的目标温度值,当将温度稳定在目标温度值 例如,我们希望水的目标温度值为70°,其希望无非就是可以快速而且无抖动的达到70°,并稳定在70° 如果我们使用普通的方式加热,当温度到达70°后就以及停止加热,岂不是简单快速,当然用在要求不高的场合也可以,但是如果要求更高的场合呢,会出现温度到达70°后......

weixin_48435215的博客 5万+

【YOLOv11】从零搭建基于YOLOv11深度学习算法的农作物虫害检测系统(附带环境搭建+完整代码+讲解)

《基于YOLOv11的农作物病虫害智能检测系统》项目摘要 本项目开发了一个基于YOLOv11深度学习算法的农作物病虫害检测系统,支持玉米、水稻、草莓和西红柿等四大类经济作物的30多种病虫害识别。系统采用多模态检测方式,支持图片、视频和实时摄像头输入,并集成了完整的Web应用框架。 技术架构上,系统以PyTorch实现YOLOv11算法为核心,结合Flask搭建深度学习服务,SpringBoot构建业务后端,Vue3+TypeScript开发前端界面,MySQL数据库存储检测数据。系统具备用户权限管理功能,支

AnChenliang_1002的博客 812

icloud日历服务器_如何在Android上查看您的iCloud日历

icloud日历服务器If you live your life in both Android and iOS, you’ll have an easier time if you use Google services. Almost all of Google’s apps are present on iOS, but the same isn’t true if you want to ...

culiyuan8310的博客 1854

基于Simulink的自适应反步法(Adaptive Backstepping)控制​

本文针对非线性系统控制中未知参数和强非线性耦合的挑战,提出基于Simulink的自适应反步法解决方案。通过融合参数在线估计与反步递归设计,该方法显著提升了永磁同步电机(PMSM)速度控制的鲁棒性,使跟踪误差从20%降至3%,参数估计收敛时间小于0.5秒。文章详细阐述了从算法推导到Simulink实现的完整流程,包括系统架构设计、核心算法推导(以PMSM为例)、模块化建模方法、参数优化策略以及工程部署建议。提供的自适应控制器MATLAB代码和关键参数表可直接应用于实际工程,为电机驱动、机械臂等非线性系统控制提

xiaoheshang_123的博客 101

华为手机日历同步win10日历

华为手机日历同步win10日历 作者:Fregis Wan 链接:https://www.zhihu.com/question/44485313/answer/148041574 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 准备工作:安装sol日历和Outlook,并申请QQ账号(废话)更改QQ邮箱设置:登录QQ邮箱后,选择设置(左上方QQ邮箱logo的右边)...

qq_40721137的博客 1万+

手把手教你学Simulink--基于Simulink的高速公路自动驾驶场景仿真建模

特点车道保持:自动调整车辆方向以保持在车道中央。自适应巡航控制(ACC):根据前方车辆的速度自动调节车速。换道辅助:安全地变换车道以超过慢速行驶的车辆或准备驶离高速公路。紧急制动:检测潜在碰撞并采取措施避免事故。挑战安全性:确保所有功能在各种条件下都能可靠运行。实时性:处理大量传感器数据,并迅速做出反应。复杂性:集成多个子系统,包括感知、规划与控制。首先明确要模拟的任务内容。车辆需保持在车道内行驶。根据交通情况自动调整速度。安全地执行换道操作。在必要时实施紧急制动。

MHD0815的博客 247

选择的 Python 解释器无效,请尝试更改解释器以启用 IntelliSense、Lint 分析和调试等功能。请查看输出,详细了解解释器无效的原因。

摘要:在VS Code中配置Anaconda Python解释器时若出现"解释器无效"错误,可通过修改用户设置解决。具体步骤:1) 按Ctrl+Shift+P打开命令面板;2) 搜索并打开用户设置JSON文件;3) 添加conda路径配置项,示例格式为"python.condaPath": "D:\\Anaconda\\setup\\Scripts\\conda.exe";4) 同时启用环境激活选项"python.terminal.act

猿小白的博客 846

日历报表_在报表中实施不同的日历

日历报表 介绍 (Introduction) There is a common need in reporting to aggregate or return data that is crunched based on date attributes. Calendars themselves can vary and provide differing insight into ...

culuo4781的博客 1478

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

outlook 日历共享_如何与他人共享Google日历

outlook 日历共享We all lead busy lives, and keeping track of appointments and events is key to maintaining your sanity. Lots of people use Google Calendar to manage their schedules, which means it’s very ...

993

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

【经验】日常|WakeUp、Outlook、Google日历导入飞书日历

一个记录。

shandianchengzi的博客 4250

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

C++日历

C++编写日历 编写日历要用到蔡勒公式:   蔡勒(Zeller)公式,是一个计算星期的公式,随便给一个日期,就能用这个公式推算出是星期几。   days = (year+year/4+century/4- 2century+26(month+1)/10+day-1)%7 其次输出星期数字的时候要注意好空格,确保行列对其!! 输出结果: //输入年份、月份、输出当月日历 /* 1.用户输入...

qq_33866593的博客 1823

车机端同步outlook日历

outlook日历使用的是icalendar这种日历数据交互标准(RFC 2445),icalendar标准定义了描述日历信息的通用格式,它内部还分为了很多类型组件,比如Events(VEVENT)、To-do(VTODO)、Journal(VJOURNAL)、VTIMEZONE (time zones) 和 VALARM (alarms))等,比如下面文件内容:每个事件都会以BEGIN开头,以END结束。

天花板的随笔 1618

php编辑日历,【PHP】制作日历

本期本博主将讲述两种利用PHP制作日历的方法,由于PHP日期函数的便捷性,使得我们制作日历这一过程变得相当简单问题描述:1、取到当前日期,并着色显示;2、根据当前日期,判断本月有多少天,一号是周几;3、完成本月日历显示方法一,自动取到当前日期,代码如下date_default_timezone_set("PRC");$time = getdate();$mday = $time["mday"];$...

weixin_36213934的博客 2142

如何在Google日历中显示Outlook日历

Justin Duino 贾斯汀·杜伊诺(Justin Duino) Having multiple calendars with different appointments on each one is a sure path to double bookings and an argument with someone you’ve annoyed. Get more organized a...

culiuman3228的博客 1135

我的日历表

日历表var diarydays="";.calendarBigBorder { font-family: "Arial", "Helvetica", "sans-serif", "宋体"; text-decoration: none; width: 170; background-color: #FFFFFF; font-size: 9pt;border:1px do

不经历风雨怎么见彩虹 1885

怎么在HTML中加个日历,在HTML中创建日历

我目前在HTML中创建一个日历作为学校项目的一部分。在HTML中创建日历到目前为止,我已经创建了页面的基础知识。我想要的是一个日历,您可以创建约会,然后显示(如基本日历)。这里是我到目前为止做出(它是丹麦人,但我不认为它应该是一个问题,让我知道,如果你想它虽然翻译):HTML:DecemberForrige månedNæste månedMandagTirsdagOnsdagTorsdagFre...

weixin_29240343的博客 2971

2019年最佳JavaScript日历和事件日历脚本

您可能要在网站上使用日历脚本的原因有很多。 其中最常见的是列出和安排事件。 另一个用途是提供一个链接,以列出在特定日期发布的所有博客文章或新闻事件。 在某些情况下,您可能只是在寻找日期和时间范围选择器。 在这篇文章中,我将分享一些2019年最佳JavaScript日历脚本和插件的精选。 简单活动日历 我们列表中的第一个脚本是评级很高的“ 简单事件日历” 。 它基于jQuery,并支持...

代码教主 1215
上一篇: 回数
下一篇: 冒泡排序,快速排序
chenran5599
博客等级 码龄11年 0粉丝 0原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值