1. 用java 输入两个日期判断分别是什么星座
/**
* 根据月日判断星座
* @param month
* @param day
* @return int
*/
public static String getConstellation(int m,int d){
final String[] constellationArr = {"魔羯座" ,"水瓶座", "双鱼座", "牡羊座", "金牛座", "双子座", "巨蟹座", "狮子座", "处女座", "天秤座","天蝎座", "射手座", "魔羯座" };
final int[] constellationEdgeDay = { 20,18,20,20,20,21,22,22,22,22,21,21};
int month=m;
int day =d;
if (day <= constellationEdgeDay[month-1]) {
month = month - 1;
}
if (month >= 0) {
return constellationArr[month];
}
//default to return 魔羯
return constellationArr[11];
}
2. java项目中如何实现多选项的模糊或者精确查询
StringBuffersb
可以实现的,多个,输入,判断每个条件是否为空。
如果不为空append进sb,具体,你自己决定,反正,查询功能上,查询一条和多条。机理是类似的
3. java 时间段查询
不一定非要在sql中判断吧,可以先取两个值,然后在java类型判断,通过拼接sql的形式进行查询版,如权:if(存在开始时间,不存在结束时间||存在结束时间,不存在开始时间){
select * from 表名where 日期字段 = '时间'
}else if(都存在){
select * from 表名 where 日期字段 between 开始时间' and '结束时间'
}
4. java基于两个整数的简单计算
跑一下下面的代码吧。知道的排版实在是太虐了,你自己在IDE里排一下吧。我测试了一下,符合你的需求。
import java.util.Scanner;
public class MathMain {
public static void main(String[] args) {
long sum = 0;
long proct = 0;
try {
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个整数begin:");
long begin = sc.nextLong();
while (begin<1 || begin>Long.MAX_VALUE) {
System.out.println("请输入long范围内的正整数!");
System.out.println("请重新输入一个整数begin:");
begin = sc.nextLong();
}
System.out.println("请输入一个整数end:");
long end = sc.nextLong();
while (end<1 || end>Long.MAX_VALUE) {
System.out.println("请输入long范围内的正整数!");
System.out.println("请重新输入一个整数end:");
end = sc.nextLong();
}
while (end<begin) {
System.out.println("请输入大于第一次输入的正整数!");
System.out.println("请重新输入一个整数end:");
end = sc.nextLong();
}
sum = getSumBetween(begin,end);
System.out.printf("Sum between %d and %d:%d%n",begin,end,sum);
proct = getProctBetween(begin,end);
System.out.printf("Proct between %d and %d:%d%n",begin,end,proct);
sc.close();
}catch (Exception e) {
System.out.println("输入的参数不是合法整数!");
return;
}
}
private static long getSumBetween(long x,long y){
long a=0;
for (long m = 0; m < y-x+1; m++) {
a = a+x+m;
}
return a;
}
private static long getProctBetween(long x,long y){
long b=1;
for (long n = 0; n < y-x+1; n++) {
b = b*(x+n);
}
return b;
}
}
5. java中,中文首字母搜索是怎么实现的
楼上的 楼主是要求输入字母求得相关的汉字字符串,而你音品码查询是从汉字求得首字母吧?
我做过一个公交查询系统,其中有个功能就是通过字母显示出相应的站点。
首先,你想通过‘W’得到王力宏、王菲等你就必须先把这些名字存到数据库中吧,然后你再在数据库中给这些名字项添加一个首字母的字段,当然你不用手动去输入它们的首字母,写个方法循环把它们的首字母输出并存入数据库中,方法可用楼上的音品码查询,我也写了个类似的方法,如下:
public class StringUtil {
//private static Log logger = LogFactory.getLog(StringUtil.class);
// 国标码和区位码转换常量
int GB_SP_DIFF = 160;
//存放国标一级汉字不同读音的起始区位码
int[] secPosValueList = {
1601, 1637, 1833, 2078, 2274, 2302, 2433, 2594, 2787,
3106, 3212, 3472, 3635, 3722, 3730, 3858, 4027, 4086,
4390, 4558, 4684, 4925, 5249, 5600};
//存放国标一级汉字不同读音的起始区位码对应读音
char[] firstLetter = {
'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'j',
'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's',
't', 'w', 'x', 'y', 'z'};
char convert(String ch) {
byte[] bytes=new byte[2];
try {
bytes = ch.getBytes("GB2312");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
char result = '-';
int secPosValue = 0;
int i;
for (i = 0; i < bytes.length; i++) {
bytes[i] -= GB_SP_DIFF;
}
secPosValue = bytes[0] * 100 + bytes[1];
for (i = 0; i < 23; i++) {
if (secPosValue >= secPosValueList[i] && secPosValue < secPosValueList[i + 1]) {
result = firstLetter[i];
break;
}
}
return result;
}
}
调用convert(String str)方法就是返回str字符串的首字的首字母。其它的应该没什么难的了,代码看不懂给我发信息。
6. 我连的Mysql数据库,JAVA中写了如下sql语句: between and,传占位符对应的参数时只能传int类型吗
不仅仅是int型的,还可以传Date,String和其它基本类型(如:float,double,char)等,但是自定义对象除外。建议最好和数据库字段类型对应,如数据库定义的是varchar,那么就传入String类型。实践是检验真理的唯一标准,写段代码试一下就一幕了然了,还能加深记忆,多动手总是有好处的。