寿星天文历Java封装整理版

由于生活和工作的原因,“寿星天文历”我一直没有动,长时间的丢弃后,当重新拾起时,比较费劲。编程就是这样,思维的火花只在当初的那一瞬,一旦熄灭,重新再点燃断掉的思维是很困难的。因为人的“忘记”能力,真的是挺强的,有时回顾或维护以前的代码时,常常会感叹道:这是我写的吗?够牛逼,看不懂!呵呵,这时候注释的作用的凸显出来了,尽管如此有时仅仅靠注释找以前的思路也是很困难。

跑题了,那么,首先对于等着“寿星天文历”封装整理版代码的各位,说声抱歉。这回整理的代码,修复了部分小bug和线程安全问题,同时整理的结构更易于理解,并与寿星天文历的JS原版代码的结构保持一致,以方便各位阅读和理解,本来想把变量的命名方式与JS原版一致的,但最后还是没有这么做,原因是是在看不惯JS源码的变量命名方式。注释上都有与原版变量名称的对应说明,各位想理解源码或继续完善的,就麻烦自己对照着看吧。

本次的封装版,实质上还是较为简单,没有进一步深入和挖掘,但也基本够用了。各位读者可以根据自己的需要进行进一步整理,不过再整理和改造之前,建议还是先了解下相关的知识,否则估计你都无从下手,即便改了,在不了解逻辑的情况下,也容易出错。

说明:

1. LunarCalendar对象是以月历为基准的,例如:2014年8月的月历数据。

2. LunarCalendar的所有方法都是针对于农历而言,例如getMonth方法,代表获取的是农历月的数据,而不是公历。

3. LunarCalendar实例化,默认为今天,可以指定为某天,大多数方法都是依据实例化时指定的天而返回数据的。

4. LunarDate类,是某一天的农历数据对象,并且已经拆分,而不是以前那样都混杂在一块。

5. JulianDate类,是公历数据对象。

6. LunarConstant类,是基本常量的数据对象,里面含有大量基本数据。

由于代码很多,所以我以文件的形式上传到了CSDN资源库里,博文里就不贴了。

Java源码下载地址:

http://download.csdn.net/detail/wangpeng047/7755661

寿星天文历Java封装整理版

时间: 2024-10-13 17:30:03

寿星天文历Java封装整理版的相关文章

翻新并行程序设计的认知整理版(state of the art parallel)

近几年,业内对并行和并发积累了丰富的经验,有了较深刻的理解.但之前积累的大量教材,在当今的软硬件体系下,反而都成了负面教材.所以,有必要加强宣传,翻新大家的认知. 首先,天地倒悬,结论先行:当你需要并行时,优先考虑不需要线程间共享数据的设计,其次考虑共享Immutable的数据,最糟情况是共享Mutable数据.这个最糟选择,意味着最差的性能,最复杂啰嗦的代码逻辑,最容易出现难于重现的bug,以及不能测试预防的死锁可能性.在代码实现上,优先考虑高抽象级别的并行库(如C++11的future,PP

Java学习整理笔记(一)Java认识

一.Java介绍: Java技术主要分成三个部分:Java语言.Java运行环境和Java类库.(一般情况下并不区分指哪个部分) 即Java并不只是一门编程语言,也是一个完整的平台,有一套庞大的开发类库(包含很多可以重复利用的代码)和提供跨平台的可移植性.自动垃圾回收以及安全性等服务的执行环境. 1.Java语言: 跟其他编程语言一样,定义的一套用于程序设计的语法规范. 2.Java运行环境: 执行Java应用程序(Java Application)必须安装 Java Runtime Envir

建造者模式(Java与Kotlin版)

前文推送 设计模式 简单工厂模式(Java与Kotlin版) 工厂方法模式(Java与Kotlin版) 抽象工厂模式(Java与Kotlin版) Kotlin基础知识 Kotlin入门第一课:从对比Java开始 Kotlin入门第二课:集合操作 Kotlin入门第三课:数据类型 初次尝试用Kotlin实现Android项目 1. 定义 建造者模式(Builder Pattern):将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示. 2. 结构 Product:产品角色:

工厂方法模式(Java与Kotlin版)

前文推送 设计模式 简单工厂模式(Java与Kotlin版) Kotlin基础知识 Kotlin入门第一课:从对比Java开始 Kotlin入门第二课:集合操作 Kotlin入门第三课:数据类型 初次尝试用Kotlin实现Android项目 1. 定义 工厂方法模式(Factory Method Pattern)又称为工厂模式,也叫虚拟构造器(Virtual Constructor)模式或者多态工厂(Polymorphic Factory)模式,它属于类创建型模式.在工厂方法模式中,工厂父类负责

java笔记整理

Java 笔记整理 包含内容     Unix Java 基础, 数据库(Oracle jdbc Hibernate pl/sql), web, JSP, Struts, Ajax Spring, Ejb, java和模式 Linux/Unix笔记 inode :存储编号(地址) ls -k:查看磁盘分区 ls -li:显示当前文件的inode号. 目录的大小跟文件的大小有关,跟目录里的文件(目录)数量无关. 一行多个命令的话,中间用分号分开.如:pwd;cal;date last | grep

《Thinking In Java第四版》拾遗

<Thinking In Java第四版>拾遗 转自我的github(http://katsurakkkk.github.io/2016/05/Thinking-In-Java%E7%AC%AC%E5%9B%9B%E7%89%88-%E6%8B%BE%E9%81%97) 近日重读了<Thinking In Java第四版>(可能版本比较老),发现一些有趣的和值得注意的地方,在此作个记录. 返回值过载 不能用返回值对函数进行overload,因为有可能调用方并不关心返回值,这就造成了

Atitit.excel导出 功能解决方案 php java C#.net版总集合.doc

Atitit.excel导出 功能解决方案 php java C#.net版总集合.docx 1.1. Excel的保存格式office2003 office2007/2010格式1 1.2. 类库选型java .net均有apache.poi 可用,php使用phpexcel1.8.01 1.3. 需要解决的问题2 1.4. 自定义类库atiexcel2 1.5. Excel导出的流程细节--导出表头2 1.6. Excel导出的流程细节--导出数据2 1.7. Phpexcel与poi的差异

瞎j8封装第二版之数据层的封装

看了以前写的代码,对就是下面这个 手把手封装数据层之DataUtil数据库操作的封装 觉得以前写的代码好烂啊!!!,重新理了一下思路,写得更规范和简练,应该效率也会高很多,用了一下下午写的连接池(半废品...) 瞎j8封装第二版之数据库连接池 下面直接上代码,代码很好理解,就是用了简单的反射,注解的部分我都写了注释 package jdbc; import util.StringUtil; import java.lang.reflect.Field; import java.lang.refl

个项目涉及到的50个Sql语句(整理版)

/*标题:一个项目涉及到的50个Sql语句(整理版)作者:爱新觉罗.毓华(十八年风雨,守得冰山雪莲花开)时间:2010-05-10地点:重庆航天职业学院说明:以下五十个语句都按照测试数据进行过测试,最好每次只单独运行一个语句.问题及描述:--1.学生表Student(S#,Sname,Sage,Ssex) --S# 学生编号,Sname 学生姓名,Sage 出生年月,Ssex 学生性别--2.课程表 Course(C#,Cname,T#) --C# --课程编号,Cname 课程名称,T# 教师