import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;
public class $ {
private static int[] DAYS = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
public static void main(String... _) {
long l1 = System.currentTimeMillis();
List data = rili(1000, 1, 10000, 12);
long l2 = System.currentTimeMillis();
for (int i = 0; i < data.size(); i++) {
System.out.println(data.get(i));
}
System.out.println((l2 - l1) + "MS");
}
private static List rili(int startYear, int startMonth, int endYear, int endMonth) {
if (startYear > endYear || (startYear == endYear && startMonth > endMonth)) {
return null;
}
List data = new ArrayList();
for (int ii = startYear; ii <= endYear; ii++) {
int startM = startMonth - 1;
int endM = endMonth - 1;
if (startYear < endYear) {
if (ii == endYear) {
endM = 11;
} else {
startM = 0;
}
}
for (int i = startM; i <= endM; i++) {
data.add("-----------------------" + ii + "年" + (i + 1) + "月-----------------------");
data.add("日\t一\t二\t三\t四\t五\t六");
int day = days(ii, i);
StringBuffer buf = new StringBuffer();
int idx = 1;
while (idx <= day) {
int len = 0;
if (idx == 1) {
Calendar c = Calendar.getInstance();
c.set(ii, i, idx);
int xingqi = c.get(Calendar.DAY_OF_WEEK);
len = getLen(xingqi);
buf.append(addBlank(len));
}
buf.append(idx++);
for (int k = len + 1; k < 7; k++) {
if (idx > day) {
break;
}
buf.append("\t" + (idx++));
}
buf.append("\n");
}
data.add(buf);
}
}
return data;
}
private static StringBuffer addBlank(int len) {
StringBuffer buf = new StringBuffer();
for (int index = 0; index < len; index++) {
buf.append("\t");
}
return buf;
}
private static int getLen(int xingqi) {
return xingqi == Calendar.SUNDAY ? 0 : xingqi - 1;
}
public static int days(int year, int month) {
if (month != 1) {
return DAYS[month];
}
if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {
return 29;
}
return DAYS[month];
}
}
分享到:
相关推荐
4. 日历算法:日历控件的核心是计算和展示日期。这涉及到一些日期相关的算法,如计算指定年月的第一天是星期几,或者检查某个月份有多少天。JavaScript的Date对象提供了获取和设置日期的方法,但可能需要自定义函数...
2. 算法设计:日历算法可以用于计算日期、节假日、农历日期等,需要设计高效的算法来实现这些计算。 3. 日期和时间处理:日期和时间是IT系统中常用的基本数据类型,需要正确地处理日期和时间格式、时区、_dst等问题...
【标题】"java源码:日历同步统计 GCALDaemon.zip"所涉及的知识点主要集中在Java编程语言,源代码分析,以及日历同步算法。GCALDaemon是一个开源项目,用于在本地日历(如Google Calendar)与不同设备之间进行同步。...
【Java项目:日历万年历(Java+Swing)】是基于Java编程语言和Swing GUI库开发的一款实用工具,旨在提供一个...它为学习者提供了练习和理解Java核心特性和Swing库的实战平台,同时也能锻炼到问题解决和算法设计的能力。
##### 1.2 算法设计 在设计过程中,采用面向对象的方法论,确保每个类都有明确的职责,并通过继承、封装和多态性等特性实现代码的复用性和扩展性。 - **设计思路**: - 日历组件能够实现前后翻页,并支持年月切换...
本实例聚焦于C语言实现的日历算法,旨在帮助开发者理解和掌握如何处理日期和时间的计算。"luocheng imti"可能是作者或项目的别名,提供的源码为学习和研究提供了实际操作的例子。 日历算法是一种计算日期和时间的...
在C语言中,实现日历算法以及将日历打印到TXT文件中,涉及到的主要知识点包括:日期和时间处理、文件I/O操作、循环控制、条件判断以及基础的C语言编程语法。下面我们将逐一深入探讨这些内容。 首先,日历算法是基于...
万年历程序是一种能够输出每一年的日历的软件系统,该系统能够根据用户输入的年份,生成对应的日历信息。本系统的设计与实现涉及到软件工程、数据结构、算法设计等多个方面的知识。 一、软件需求分析 在设计万年...
简单的 日历算法简单的 日历算法简单的 日历算法
1. **日历算法**:为了正确显示日期和处理日期计算,日历系统通常会包含一些日期和时间的处理逻辑,如闰年判断、月份天数计算等。 2. **前端框架**:日历的前端部分可能使用了像React、Vue或Angular这样的现代前端...
详细的有关日历的算法,用c语言编写的111111
日历实现库 一个精确的C库,可为最常见的日历系统提供运算。 当前提供公历,朱利安,米兰科维奇,太阳回历(也称为Shamsi或Jalali),伊斯兰民用和犹太(也称为希伯来语)日历系统。...用法libcalendar中的几乎所有算法
2. 自动生成日历:根据输入的信息,软件会自动整理成教学日历的格式,方便查看。 3. 文档导出:生成的日历将以TXT文档形式保存,用户可以在任何设备上打开查看,无需特定应用程序。 二、软件使用流程 1. 安装与...
5. **日历算法**:为了正确地显示和操作日期,程序可能使用了Java的java.time包,该包提供了强类型和本地化的日期和时间API,如LocalDate用于表示无时区的日期,MonthDay用于表示一个月中的某一天。 6. **用户界面...
综上所述,"电影日历"小程序DEMO涵盖了多方面的技术知识,包括UI/UX设计、API接口调用、日历功能集成、搜索与筛选算法、本地存储与云服务应用,以及性能优化等。这些技术和知识的运用,共同构建了一个实用且有趣的...
日历的实现和有关逻辑算法的介绍
1. 农历算法:为了在日历中显示农历,我们需要理解农历的计算方法。农历与公历之间存在一定的转换规则,可以通过农历转换库(如JavaScript的`lunar-js`或`china-calendar`)进行计算。 2. 节气处理:农历不仅有月份...
这些功能需要准确的算法来实现。 7. **节假日和特殊日期**:集成公共节假日或用户自定义特殊日期的功能也是常见的需求,这需要维护一个节假日数据库,并在显示日历时突出显示。 8. **提醒与通知**:为确保用户不会...