星座的枚举类
ConstellationUtil .java
public class ConstellationUtil {
public enum Constellation {
Capricorn(1, "摩羯座"), Aquarius(2, "水瓶座"), Pisces(3, "双鱼座"), Aries(4, "白羊座"), Taurus(5, "金牛座"), Gemini(6, "双子座"), Cancer(
7, "巨蟹座"), Leo(8, "狮子座"), Virgo(9, "处女座"), Libra(10, "天秤座"), Scorpio(11, "天蝎座"), Sagittarius(12, "射手座");
private int code;
private String chineseName;
private Constellation(int code, String chineseName) {
this.code = code;
this.chineseName = chineseName;
}
public int getCode() {
return this.code;
}
public String getChineseName() {
return this.chineseName;
}
}
public static final Constellation[] constellationArr = { Constellation.Aquarius, Constellation.Pisces,
Constellation.Aries, Constellation.Taurus, Constellation.Gemini, Constellation.Cancer, Constellation.Leo,
Constellation.Virgo, Constellation.Libra, Constellation.Scorpio, Constellation.Sagittarius,
Constellation.Capricorn };
public static final int[] constellationEdgeDay = { 21, 20, 21, 21, 22, 22, 23, 24, 24, 24, 23, 22 };
public static int calculateConstellation(String birthday) {
if (birthday == null || birthday.trim().length() == 0)
throw new IllegalArgumentException("the birthday can not be null");
String[] birthdayElements = birthday.split("-");
if (birthdayElements.length != 3)
throw new IllegalArgumentException("the birthday form is not invalid");
int month = Integer.parseInt(birthdayElements[1]);
int day = Integer.parseInt(birthdayElements[2]);
if (month == 0 || day == 0 || month > 12)
return 0;
month = day < constellationEdgeDay[month - 1] ? month - 1 : month;
return month > 0 ? constellationArr[month - 1].getCode() : constellationArr[11].getCode();
}
}
测试ConstellationUtil 单元测试
public class TestConstellationUtil extends BaseTestCase {
protected void setUp() throws Exception {
super.setUp();
}
protected void tearDown() throws Exception {
super.tearDown();
}
public void testCalculateConstellation() {
assertEquals(Constellation.Capricorn.getCode(), ConstellationUtil.calculateConstellation("1986-12-22"));
assertEquals(Constellation.Capricorn.getCode(), ConstellationUtil.calculateConstellation("1986-12-25"));
assertEquals(Constellation.Capricorn.getCode(), ConstellationUtil.calculateConstellation("1986-01-20"));
assertEquals(Constellation.Aquarius.getCode(), ConstellationUtil.calculateConstellation("1986-01-21"));
assertEquals(Constellation.Aquarius.getCode(), ConstellationUtil.calculateConstellation("1986-02-18"));
assertEquals(Constellation.Aquarius.getCode(), ConstellationUtil.calculateConstellation("1986-02-19"));
assertEquals(Constellation.Pisces.getCode(), ConstellationUtil.calculateConstellation("1986-02-20"));
assertEquals(Constellation.Pisces.getCode(), ConstellationUtil.calculateConstellation("1986-02-26"));
assertEquals(Constellation.Pisces.getCode(), ConstellationUtil.calculateConstellation("1986-03-20"));
assertEquals(Constellation.Aries.getCode(), ConstellationUtil.calculateConstellation("1986-03-21"));
assertEquals(Constellation.Aries.getCode(), ConstellationUtil.calculateConstellation("1986-03-25"));
assertEquals(Constellation.Aries.getCode(), ConstellationUtil.calculateConstellation("1986-04-20"));
assertEquals(Constellation.Taurus.getCode(), ConstellationUtil.calculateConstellation("1986-04-21"));
assertEquals(Constellation.Taurus.getCode(), ConstellationUtil.calculateConstellation("1986-05-10"));
assertEquals(Constellation.Taurus.getCode(), ConstellationUtil.calculateConstellation("1986-05-21"));
assertEquals(Constellation.Gemini.getCode(), ConstellationUtil.calculateConstellation("1986-05-22"));
assertEquals(Constellation.Gemini.getCode(), ConstellationUtil.calculateConstellation("1986-05-25"));
assertEquals(Constellation.Gemini.getCode(), ConstellationUtil.calculateConstellation("1986-06-21"));
assertEquals(Constellation.Cancer.getCode(), ConstellationUtil.calculateConstellation("1986-06-22"));
assertEquals(Constellation.Cancer.getCode(), ConstellationUtil.calculateConstellation("1986-06-28"));
assertEquals(Constellation.Cancer.getCode(), ConstellationUtil.calculateConstellation("1986-07-22"));
assertEquals(Constellation.Leo.getCode(), ConstellationUtil.calculateConstellation("1986-07-23"));
assertEquals(Constellation.Leo.getCode(), ConstellationUtil.calculateConstellation("1986-07-30"));
assertEquals(Constellation.Leo.getCode(), ConstellationUtil.calculateConstellation("1986-08-23"));
assertEquals(Constellation.Virgo.getCode(), ConstellationUtil.calculateConstellation("1986-08-24"));
assertEquals(Constellation.Virgo.getCode(), ConstellationUtil.calculateConstellation("1986-09-21"));
assertEquals(Constellation.Virgo.getCode(), ConstellationUtil.calculateConstellation("1986-09-23"));
assertEquals(Constellation.Libra.getCode(), ConstellationUtil.calculateConstellation("1986-09-24"));
assertEquals(Constellation.Libra.getCode(), ConstellationUtil.calculateConstellation("1986-10-21"));
assertEquals(Constellation.Libra.getCode(), ConstellationUtil.calculateConstellation("1986-10-23"));
assertEquals(Constellation.Scorpio.getCode(), ConstellationUtil.calculateConstellation("1986-10-24"));
assertEquals(Constellation.Scorpio.getCode(), ConstellationUtil.calculateConstellation("1986-11-21"));
assertEquals(Constellation.Scorpio.getCode(), ConstellationUtil.calculateConstellation("1986-11-22"));
assertEquals(Constellation.Sagittarius.getCode(), ConstellationUtil.calculateConstellation("1986-11-23"));
assertEquals(Constellation.Sagittarius.getCode(), ConstellationUtil.calculateConstellation("1986-11-28"));
assertEquals(Constellation.Sagittarius.getCode(), ConstellationUtil.calculateConstellation("1986-12-21"));
}
}
分享到:
相关推荐
在这个"十二生肖和星座Java工具类"中,我们可以假设作者创建了一个Java类,该类提供了与计算和处理十二生肖以及星座相关的功能。下面将详细解释这些知识点。 首先,我们需要理解十二生肖和星座的概念。十二生肖,...
在本项目中,“Java编程星座配对”是一个有趣的话题,它结合了计算机编程与星座文化,为用户提供了一种新颖的互动体验。通过编程实现星座配对功能,我们可以深入理解Java语言的一些关键概念和技术,同时也涉及到了...
同时,编写单元测试和集成测试可以确保代码的稳定性和准确性。 10. **发布准备**:最后,应用需要打包成APK文件以便在Android设备上安装和运行。在发布前,需要考虑应用图标、版本信息、权限声明以及Google Play ...
星座小程序通常包括用户输入生日,程序自动识别并返回对应的星座信息,可能还会包含一些星座运势、星座配对等趣味功能。实现这个功能,开发者需要掌握基础的Java编程,包括数据类型、控制结构、类与对象等。此外,...
8. **测试**:为了确保程序的正确性,你需要进行各种测试,包括单元测试和集成测试。可以使用Android Studio内置的 Espresso 测试框架进行UI测试。 9. **权限请求**:如果应用需要访问用户的日期,可能需要请求`...
9. **测试与调试**:为了确保人品计算器的正确性,需要编写测试用例,通过`JUnit`等单元测试框架进行测试,确保在各种输入条件下都能得到预期的结果。 尽管“人品计算器”没有科学依据,但它的实现过程涵盖了Java...
1. 星座查询:用户可以根据生日查询对应的星座信息,这需要对星座知识有一定的理解,并在后台存储相应的星座数据。 2. 星座运势:提供每日、每周或每月的星座运势预测,这部分可能需要集成外部API来获取数据。 3. ...
- **Java**:Android应用主要使用Java语言编写,Java的面向对象特性使得代码结构清晰,易于维护。 - **星座查询**:软件的核心功能,允许用户输入生日以查询对应星座并查看相关资讯。 - **Intent**:Android中用于...
开发者需要设计一种算法,它可以基于用户的输入(如生日、星座、姓名等)生成测试结果。这些算法可以是随机的,也可以是基于某些统计或占星学原理的。关键是要让用户感觉结果既有趣又神秘。 3. **数据处理**:如果...
在IT行业中,这样的软件通常基于一定的算法模型,可能涉及姓名学、星座、生日、兴趣爱好等多种因素,通过计算这些因素的匹配度来模拟出一个“缘分值”。虽然这种测试并不具备科学严谨性,但它利用了人们对于未知的...
3. **命测试**:在IT上下文中,命测试可能指的是根据用户的个人信息(如生日、星座等)提供某种形式的命运预测或解析。这可能涉及到算法或数据库,用于匹配和分析数据。 4. **测试版**:测试版软件是开发者在正式...
**xingzuo**可能是一个包含星座程序实际代码的文件或者目录,比如Java源代码文件(.java)、配置文件(.config)、资源文件(如图片、音频)等。通过查看这部分内容,开发者可以深入到具体的编程实践中,学习如何在...
为了确保程序的安全性和稳定性,开发者还需要对PHP源码进行充分的测试,包括单元测试、集成测试和系统测试,确保各个模块和整体流程的正确性。同时,对于用户数据的处理,需要遵循隐私保护原则,确保信息安全。 总...
7. **程序打包与发布**:"缘分.EXE"表明这是一个已经编译打包的Windows可执行文件,可能是使用编程语言如C#、Java或Visual Basic开发的,并通过编译器将源代码转化为可以直接运行的二进制文件。 总的来说,"缘分...
用户输入的阳历生日需要被解析为日期对象,这需要用到Java或Kotlin的日期时间类,如`java.util.Date`或`java.time.LocalDate`。然后,根据日期范围,开发者需要编写逻辑来判断所属的星座。这可能涉及到条件语句或...
【标题】:“Fortune-Telling”是一款基于Java技术开发的星座运势预测应用程序,它为用户提供了一个全新的生日到星座占卜的体验。 【描述】:在当今科技与传统文化交融的时代,这款“Fortune-Telling”应用将传统的...
姓名可能被用于生成所谓的“姓名缘分”,而生日则可能用于星座配对或者生辰八字的分析。在传统命理学中,生辰八字被认为可以揭示一个人的命运轨迹,而星座则常用于西方的性格分析。通过将这些元素与特定算法相结合,...