一个日历程序(基本每一行都带有注释)

微信小程序之打卡日历 本文为原创作品,引用请注明出处,欢迎转载。 生活中有各种可以打卡的app,例如背单词打卡什么的,本人觉得很有意思,于是本人在大二时做了一款诚信状打卡的微信小程序,这里讲述一下编写的过程。 先说一下开发环境:用的是微信web开发工具开发的,后台采用了Bmob后台,比较方便。 先展示一下成果: 话不多说,直接上代码,里面也有挺多的注释,以防自己忘记,当然各位如果直接复制过去肯定不能有当... 阅读详情
发贴心情  回复:一个日历程序(基本每一行都带有注释)
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.util.*;

public class CalenderTrain extends JFrame implements ActionListener {
JComboBox Month = new JComboBox(); //月份下拉列表框
JComboBox Year = new JComboBox(); //年份下拉列表框
JLabel Year_l = new JLabel("Year::"); //定义标签
JLabel Month_l = new JLabel("Month::"); //定义标签
Date now_date = new Date(); //获取今天的日期
JButton[] button_day = new JButton[49]; //定义一个数组用来存放日期
JButton button_ok = new JButton("确定"); //现实选择日期
JButton button_today = new JButton("今天"); //显示今天按钮
int now_year = now_date.getYear() + 1900; //获取年份值
int now_month = now_date.getMonth(); //获取月份值(当前月份-1)
String year_int = null; //存放年份
int month_int; //存放月份
JPanel pane_ym = new JPanel(); //放置下拉列表框和控制按钮面板
JPanel pane_day = new JPanel(); //放置日期面板
JPanel pane_parent = new JPanel(); //放置以上两个面板
//定义方法绘制面板
public CalenderTrain() {
super("Calender!"); //设定面板得title
//---以下几行使得关闭面板时退出程序
setDefaultCloseOperation(DISPOSE_ON_CLOSE);
addWindowListener(new WindowAdapter() {
public void windowClose(WindowEvent e) {
System.exit(0);
}
});
//---
setResizable(false); //面板的大小不能变化
//设定年月
/*年份的区间是当前年份的过去10年到当前年份的未来20年
* 月份正常1??12月
*/
for (int i = now_year - 10; i <= now_year + 20; i++) {
Year.addItem(i + "");
}
for (int i = 1; i < 13; i++) {
Month.addItem(i + "");
}
Year.setSelectedIndex(10);//设定年份下拉列表为当前年份
pane_ym.add(Year_l);//添加年份标签
pane_ym.add(Year);//添加年份下拉列表框
Month.setSelectedIndex(now_month);//设定月份下拉列表为当前月份
pane_ym.add(Month_l);//添加月份标签
pane_ym.add(Month);//添加月份下拉列表框
pane_ym.add(button_ok);//添加确定按钮
pane_ym.add(button_today);//添加“今天”按钮
button_ok.addActionListener(this);//确定按钮添加监听事件
button_today.addActionListener(this);//“今天”按钮添加监听事件
//年月设定结束
//初始化日期按钮并绘制
pane_day.setLayout(new GridLayout(7, 7, 10, 10));
for (int i = 0; i < 49; i++) {
button_day[i] = new JButton(" ");
pane_day.add(button_day[i]);
}
this.setDay();//调用setDay()方法
pane_parent.setLayout(new BorderLayout());//设定布局管理器
setContentPane(pane_day);
setContentPane(pane_ym);
pane_parent.add(pane_day, BorderLayout.SOUTH);
pane_parent.add(pane_ym, BorderLayout.NORTH);
setContentPane(pane_parent);
pack();
show();
}
void setDay() {
year_int = Year.getSelectedItem().toString();
month_int = Month.getSelectedIndex();
int year_sel = Integer.parseInt(year_int) - 1900;//获得年份值
Date dt = new Date(year_sel, month_int, 1);//构造一个日期
GregorianCalendar cal = new GregorianCalendar();//创建一个Calendar实例
cal.setTime(dt);
String week[] = { "Sun", "Mon", "Tue", "Wed", "Thur", "Fri", "Sat" };
int day = 0;//day中存放某个月份的天数
int day_week = 0;//用来存放某个月的第一天是星期几的数值
//--将星期添加到前7个按钮中
for (int i = 0; i < 7; i++) {
button_day[i].setText(week[i]);
}
//--
/*判断是几月份,根据它来设定day的值
* 其中二月份要判断是否是闰年
*/
if (month_int == 0
|| month_int == 2
|| month_int == 4
|| month_int == 6
|| month_int == 7
|| month_int == 9
|| month_int == 11) {
day = 31;
} else if (
month_int == 3
|| month_int == 5
|| month_int == 8
|| month_int == 10) {
day = 30;
} else {
if (cal.isLeapYear(year_sel)) {
day = 29;
} else {
day = 28;
}
}
day_week = 7 + dt.getDay();
int count = 1;
/*绘制按钮
* 在这里我们首先要根据选定的月份的第一天是星期几来确定我们绘制按钮的起始位置
* 其中day_week就是我们要绘制的起始位置
* 对于那些没有数值可以显示的按钮要置空
*/
for (int i = day_week; i < day_week + day; count++, i++) {
if (i % 7 == 0
|| i == 13
|| i == 20
|| i == 27
|| i == 48
|| i == 34
|| i == 41) {
button_day[i].setForeground(Color.RED);
button_day[i].setText(count + "");
} else {
button_day[i].setText(count + "");
}

}
//--对于没有日期数值显示的按钮进行置空处理
if (day_week == 0) {
for (int i = day; i < 49; i++) {
button_day[i].setText(" ");
}
} else {
//第一天前面的按钮置空
for (int i = 7; i < day_week; i++) {
button_day[i].setText(" ");
}//最后一天后面的按钮置空
for (int i = day_week + day; i < 49; i++) {
button_day[i].setText(" ");
}
}

}
public void actionPerformed(ActionEvent e) {
if (e.getSource() == button_ok) {
this.setDay();//如果点击确定按钮就调用setDay()重新方法绘制按钮
} else if (e.getSource() == button_today) {
new CalenderTrain();//如果点击今天按钮,得到今天的日期
}
}
public static void main(String[] args) {
CalenderTrain ct = new CalenderTrain();
}
}
 
超详细的注释!趣味程序设计_打印日历 郑重声明:如果是ke da做课设的同学,理解思路,然后自己去写,重复率别超过50%!! 趣味程序设计_打印日历 题目描述 打印出任意年份的日历。提示:要判断该年份是否是闰年,若是闰年,二月为29天,平年为28天。而判断闰年的规则是:如果((该年能被4除尽且不能被100除尽) 或 能被400除尽),则该年是闰年。 输入 输入年份。 输出 与输入相对应,输出该年12个月的日历。 样例输入 2012 样例输出 *Mon Tue Wed Thu Fri Sat Sun 阅读详情

相关推荐

在Python中处理农历日期:自定义格式化方法 【附:python生成Excel日历/-带有农历注释 完整代码】

由于lunardate库没有提供strftime这样的方法,我们需要自定义一个函数来格式化农历日期。这个函数可以接收一个LunarDate对象,然后返回一个按照指定格式字符串生成的字符串。

the_beginner的博客 4038

java获取两个时间之间的所有日期、月份、年份,返回列表

一、输入开始时间和结束时间,返回时间范围内中的所有日期列表测试输出结果:二、输入开始时间和结束时间,返回时间范围内中的所有月份列表输入:"2022-07-01 00:00:00 " "2022-10-27 23:59:59 "返回结果:[2022-07,2022-08,2022-09,2022-10]

yyongsheng的博客 5405

在 NVIDIA Orin (JetPack 6.0) 上配置 PyTorch 2.4 + Torchvision 0.19 的完整避坑指南

本文提供在NVIDIA Jetson Orin设备上,基于JetPack 6.0系统配置PyTorch 2.4与Torchvision 0.19环境的完整指南。通过使用Miniconda环境隔离、安装特定版本PyTorch夜间构建版、编译匹配的Torchvision源码等步骤,解决版本不匹配、CUDA支持等常见问题,确保AI开发环境稳定可用。

weixin_29179311的博客 366

java生成日期列表datelist

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34262482的博客 1737

Index-TTS-1.5:多模态语音合成的技术演进与商业落地实践

本文深入探讨了Index-TTS-1.5在多模态语音合成领域的技术演进与商业落地。该模型基于GPT风格的自回归Transformer架构,通过优化条件编码器和引入字符-拼音混合建模,显著提升了语音生成的稳定性、精准度和真实感,实现了高质量的零样本语音克隆。文章还详细介绍了其云端体验、本地WebUI部署及ComfyUI集成等实战路径,并分析了其在虚拟数字人、个性化内容创作等商业场景中的应用潜力与挑战。

weixin_29098367的博客 403

Tiff、jpg图片怎么样添加地理坐标信息

Tiff、jpg图片怎么样添加地理坐标信息 一般,外业调查只有地图资料,如专题图、或者地形图,如何把这些地图资料的扫描地图带上坐标信息,从而内业实现信息化处理?以上问题,可以解决,但根据不同情况有不同的处理方法。     第一种,上面有经纬度外框,图片是矩形,但是没有地理信息。 通过图框的两个角的坐标确定范围,分别是左上(140°E,30°N);右下(150°W,30°N) 解决方

树木_xzw的博客 2万+

java获取一个时间段内的所有年份/月份/天

代码示例: public enum DateUnit { YEAR("year"), MONTH("month"), DAY("day"); private String unit; DateUnit(String unit) { this.unit = unit; } public String getUnit() { return this

不见其长,日有所长 4292

运放偏置电路设计:如何精准计算差分放大器的电压偏移量

本文深入解析了差分放大器偏置电路的设计原理与精准计算方法,重点阐述了如何通过引入参考电压实现信号电压偏移,以适应单电源ADC的输入范围。文章结合实战案例,详细推导了偏移电压公式,并强调了电阻匹配、运放选型及PCB布局对精度和共模抑制比的关键影响,帮助硬件工程师避免常见设计陷阱。

weixin_29288313的博客 637

c语言课程设计之桌面日历(完整源码+注释)

c语言实现简单日历, 1) 按照输入的年份,显示这一年每月日历。 2) 按照输入的年份和月份,显示这个月的日历。 3)显示当月的日历。 日历显示形式同挂历。

Shoulen的博客 8288

未来智能家居解决方案:AI应用架构师的前沿探索

当你加班到深夜回家时,门锁自动识别你的脚步声解锁,玄关灯渐亮成你最爱的暖光,空调早已调到25℃(你夏天的习惯温度),音箱播放着最近循环的爵士乐,茶几上的智能水壶烧好了温水——这不是科幻电影,而是未来智能家居的日常。如何让“冰冷的设备”变成“懂你的伙伴”。我们将深入探讨五大前沿技术(边缘AI、多模态融合、联邦学习、数字孪生、个性化推荐)的底层原理,用“家里的小管家”“邻居互相学习”等生活化比喻简化复杂概念,结合代码示例与架构图还原实现流程,并通过智能卧室、智能厨房等真实案例展示落地路径。

AI天才研究院 1411

SAP物料主数据归档详解(物理删除)

顾问们的回答肯定的统一的不能,只能打上删除标记。物料设置好需要删除的物料号这里我们需要删除的物料是AG88,其中,若不选“考虑无删除标记的物料”,需要将需要归档的物料MM06打删除标记。平时在操作系统过程中经常会不小心创建出很多无用的物料主数据,但是系统只能通过MM06打上删除标记,但是物料最终在系统中还是可以查询到的。6、执行已设置变式的归档程序,执行完毕,点下图中的“Job”,每次执行完归档程序会产生两条作业。然后设置好开始的参数和假脱机的参数,三个都是绿灯就可以执行归档的操作,物理上删除物料主数据。

我小时候很黑的博客 5527

java做一个日历程序_java实现的一个简单日历

先贴代码,之后的文章慢慢总结分析。首先是日历的每个格子作为一个对象,建立的一个类DayBox.javaimport java.awt.Color;import javax.swing.JButton;//方格类,public class DayBox{//属性int year;int month;//月份1-12int day;int week;//星期1-7JButton Labelday;//...

weixin_35101697的博客 1856

LabVIEW实现TCP通信

在本节中,我们将简要探讨TCP通信的基础知识,并以工业物联网平台TLINK中的云端设备数据发布设计为例,详细阐述在互联网环境下TCP客户端应用程序设计的基本方法。

不脱发的程序猿 1967

Vue 实现的一个日历

由于项目需要,实现一个日历组件,直接上代码,实现逻辑代码里有注释: <template> <div class="calendar"> <div class="now-mouth">{{displayDate}}</div> <div class="calendar-title"> <div cl...

zoboy的博客 2177

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

制作一个日历表

如何制作日历表 首先要明白 Date类,DateFormat类,Calendar类分别是干什么的,它们有什么方法,可以实现什么功能,只有明白了这些,才能够制作一个日历表 Date类:setTime(long date) ,使用给定的毫秒时间值设置现有的 Date对象。 Date类大多方法已经弃用了,常用的就是这个,一般用他的子类DateFormat较多 Dateformat类:可以实现字符串和时间...

weixin_45607985的博客 1494

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

python实现输出日历

使用Python实现给定年月输出当月日历的小程序。适用于初学者练习函数使用。

jlshix的专栏 2万+

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

可视化日历【Java,有详细的注释】

package cn.bla.test; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import j...

chidewang0569的博客 124

用js手写一个简单的日历

代码中有注释 <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>日历</title> <style type="text/css"> html,body{ background-color: antiquewhi...

TISRNW的博客 856

c语言一年日历程序,c语言日历程序

关于日历程序的设计1.设计要求;输入一个年份要求输出打印该年每个月的日历。2.设计思路:要输出某年的日历,先求出该年第一天是星期几;再从1月到12月执行一次循环,考虑闰年2月29天,月份有大小,天数按星期排列的问题。日历程序及部分注释#include int runnian(int);/函数申明;void main(){int a[12][42] ={0};/定义一个数组long int day...

weixin_33304092的博客 1298

python日历小程序_python写的日历小程序

查看: 14785|回复: 262[作品展示]python写的日历小程序电梯直达发表于 2013-8-19 21:38:32|只看该作者|倒序浏览|阅读模式马上注册,结交更多好友,享用更多功能^_^您需要 登录 才可以下载或查看,没有帐号?立即注册x用python写了一个显示给定年份和月份日历小程序。主要有两个关键的地方:1、计算要显示的月份的一号是星期几。2、计算要显示的月份有几天。对于第一点,...

weixin_39737240的博客 270

日历应用程序 c++_您怎么说:最喜欢的移动日历应用程序?

日历应用程序 c++Earlier this week we asked you to share your favorite mobile calendar app; you weighed in and now we’re back to highlight the trends in your comments. 本周早些时候,我们要求您分享自己喜欢的移动日历应用程序; 您权衡了一下,现在我...

cuma1988的博客 226

用php打印出日历_php简单日历实现程序代码

关于日历的应用,应该在独立博客上面能很好的体现出来吧,不管是 php 的 wp 博客,还是 ASP 的 z_blog 博客,都应用了日历的功能,那就是日志存档了,在我们要看以前发布的日志时,只要调出日志存档,便能够很清晰的查看每一篇文章了。因为最近在写一个日历的项目功能,所以自然而然想到了日志的存档,其实实现这样的功能也不是很难,首先要有一个日历的表单来直观显示日历,而处理日期的时间就交给了编程代...

weixin_42304618的博客 638

Java——根据输入年月显示对应月份的日历

不是技术贴,只是记录贴,,, 主函数:输入年、月,输出月份日历。 public static void main(String[] args) { // TODO Auto-generated method stub Scanner input = new Scanner(System.in); System.out.print("Enter full year: ")...

qq_34227242的博客 1万+
上一篇: 申请成了二级
下一篇: ThinkingInJava3(中文版)__第十章:检测类型
SunnyJavaMoon
博客等级 码龄21年 20粉丝 36原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值