【Java】实现一个根据日期判断星座程序的编写
来源:互联网 发布:php中print r 编辑:程序博客网 时间:2024/04/29 03:03
思路
直接根据月份做索引,然后根据日期边界判断是本月的星座还是上月的。
算法
private static String getAstro(int month, int day) { String[] starArr = {"魔羯座","水瓶座", "双鱼座", "牡羊座", "金牛座", "双子座", "巨蟹座", "狮子座", "处女座", "天秤座", "天蝎座", "射手座" }; int[] DayArr = {22, 20, 19, 21, 21, 21, 22, 23, 23, 23, 23, 22}; // 两个星座分割日 int index = month; // 所查询日期在分割日之前,索引-1,否则不变 if (day < DayArr[month - 1]) { index = index - 1; } // 返回索引指向的星座string return starArr[index]; }
最终的效果图
初始图:
选择图:
判断星座
Java代码
package com.test0803;import java.awt.*;import java.awt.event.*;import javax.swing.*;import java.util.*;/* * * */class MyFrameee extends JFrame implements ItemListener {private JComboBox day = new JComboBox(), month = new JComboBox();private JLabel tip = new JLabel("请选择日期");public static final String[] starArr = {"魔羯座","水瓶座", "双鱼座", "牡羊座", "金牛座", "双子座", "巨蟹座", "狮子座", "处女座", "天秤座", "天蝎座", "射手座" }; public static final int[] DayArr = {22, 20, 19, 21, 21, 21, 22, 23, 23, 23, 23, 22}; MyFrameee() {super("星座计算");for (int i = 1; i <= 12; i++) {//void addItem(Object anObject) 为项列表添加项。month.addItem(String.valueOf(i));}for (int i = 1; i <= 31; i++) {day.addItem(String.valueOf(i));}//setForeground:设置此组件的前景色。tip.setForeground(Color.blue);Container con = getContentPane();con.setLayout(new FlowLayout());con.add(month);con.add(new JLabel("月-"));con.add(day);con.add(new JLabel("日"));con.add(tip);day.addItemListener(this);month.addItemListener(this);setSize(280, 100);setLocation(400, 300);setVisible(true);setResizable(false);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}public static String getConstellation(Calendar time) { int month = time.get(Calendar.MONTH); int day = time.get(Calendar.DAY_OF_MONTH); if (day < DayArr[month]) { month = month - 1; } if (month >= 0) { return starArr[month]; } return starArr[0]; } public void itemStateChanged(ItemEvent e) {Calendar date = Calendar.getInstance();date.set(2010, Integer.parseInt((String) month.getSelectedItem()),Integer.parseInt((String) day.getSelectedItem()));tip.setText(getConstellation(date));}}public class Test_Star2 {public static void main(String[] args) {new MyFrameee();}}
不足之处
为了方便,没有确定特殊月份的日期数量,都是按照31天处理的。
- 【Java】实现一个根据日期判断星座程序的编写
- js根据日期判断星座
- 分享一个根据具体的日期判断星座的PHP函数
- php根据日期判断星座的函数分享
- iOS 根据日期判断星座源代码
- iOS 根据日期判断星座源代码
- java根据生日判断生日和星座
- 根据日期计算星座的算法
- 根据日期返回星座
- 根据日期得到星座
- 根据生日判断星座
- 一个用java代码编写的日期程序
- Java根据生日得出是十二星座的哪一个星座
- 编写一个计算某个月份的天数程序,请用if-else条件语句实现。要求根据用户输入的月份,判断出月份所包含的天数。
- [MSSQL]根据日期返回星座
- ASP.NET根据日期获取星座的方法
- 编写一个 JAVA 程序,实现输出考试成绩的前三名
- 【practice】编写一个 JAVA 程序,实现输出考试成绩的前三名
- Struts2常用标签简述
- 在ubuntu下的用户切换
- 04-封杀IP地址,限制用户访问
- 指针和数组小结
- 在ubuntu下安装C/C++编译器
- 【Java】实现一个根据日期判断星座程序的编写
- 在ubuntu下安装node
- VIM 程序员的编辑器 这才是入门的必看
- Android项目导入时,出现的Could not write file 。。。。。。.classpath错误解决办法
- NYOJ 112题 指数运算
- UVA 12538 Version Controlled IDE 解题报告
- Ubuntu nginx
- struts2标签简单说说
- [leetcode 刷题系列]Permutation Sequence