java查询某一天是一年中的第几天

Description : 查询某一天是一年中的第几天
Input Param : int year: 年
int month:月
int day: 日
Output Param :
Return Value : 查询成功或失败
下面是我写的 测试不通过 哪里错了 麻烦大神看看
public final class Demo { public static int calcHowManyDays( int year, int month, int day)
{Calendar ca = Calendar.getInstance();
ca.set(Calendar.YEAR, year);
ca.set(Calendar.MONTH, month-1);
ca.set(Calendar.DAY_OF_MONTH, day);
if (ca.get(Calendar.YEAR) != year|| ca.get(Calendar.MONTH) != month - 1 || ca.get(Calendar.DAY_OF_MONTH) != day)
{
return 1;
}

return ca.get(Calendar.DAY_OF_YEAR);
}
public static int getSumOfDays()
{
return 0;
}
public static void main(String[] args){
System.out.println(Demo.calcHowManyDays(2012, 2, 1));
}
}
测试:
public class DemoTest extends TestCase {

public void testCase01()
{
int year = 2012;
int month = 2;
int day = 1;
int sumCmp = 32;
int result = 0;
result = Demo.calcHowManyDays(year, month, day);
assertEquals(0 ,result);
assertEquals(Demo.getSumOfDays() ,sumCmp);
}

}

java中Calendar类中给出了求第几天第几周的方法的,所以直接引用即可。

Calendar ca = Calendar.getInstance();//创建一个日期实例

ca.setTime(new Date());//实例化一个日期

System.out.println(ca.get(Calendar.DAY_OF_YEAR));//获取是第多少天

System.out.println(ca.get(Calendar.WEEK_OF_YEAR));//获取是第几周

备注:此方法提供了很多方法,如查月,日、周等等。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-10-06
我测试了一下,你的demo写的没有问题。这是我的测试程序你看一下吧。
import java.util.Calendar;

public final class Demo {
public static int calcHowManyDays( int year, int month, int day)
{
Calendar ca = Calendar.getInstance();
ca.set(Calendar.YEAR, year);
ca.set(Calendar.MONTH, month-1);
ca.set(Calendar.DAY_OF_MONTH, day);//指示当前月中的天数
if (ca.get(Calendar.YEAR) != year|| ca.get(Calendar.MONTH) != month - 1 || ca.get(Calendar.DAY_OF_MONTH) != day)
{
return 1;
}

return ca.get(Calendar.DAY_OF_YEAR);//指示当前年中的天数
}
public static int getSumOfDays()
{
return 0;
}

}

public class DemoTest {
public static void main(String[] args){
int year = 2013;
int month = 12;
int day = 4;
//int sumCmp = 32;
int result = 0;
result = Demo.calcHowManyDays(year, month, day);
System.out.println("结果是:"+result);
}

}
第2个回答  2013-12-04
public static void main(String[] args) { Calendar cl = Calendar.getInstance(); cl.set(Calendar.YEAR, 2013); cl.set(Calendar.MONTH, 11); cl.set(Calendar.DATE, 4); System.out.println(cl.get(Calendar.DAY_OF_YEAR)); }
第3个回答  2013-12-04
把你继承的那个类的代码也贴出来。追问

没继承啊 就两个程序的 一个测试 一个功能实现的代码

追答

extends TestCase ?这是什么?而且你都在demo中测试了,有单独写个类是什么意思???

追问

public class DemoTest extends TestCase就是一个测试的程序 不管他
关键我 Demo这个类里面写的不对 不知道哪里错了 异常没考虑清楚还是怎么的

追答

我测试了一下,你的demo写的没有问题。这是我的测试程序你看一下吧。
import java.util.Calendar;

public final class Demo {
public static int calcHowManyDays( int year, int month, int day)
{
Calendar ca = Calendar.getInstance();
ca.set(Calendar.YEAR, year);
ca.set(Calendar.MONTH, month-1);
ca.set(Calendar.DAY_OF_MONTH, day);//指示当前月中的天数
if (ca.get(Calendar.YEAR) != year|| ca.get(Calendar.MONTH) != month - 1 || ca.get(Calendar.DAY_OF_MONTH) != day)
{
return 1;
}

return ca.get(Calendar.DAY_OF_YEAR);//指示当前年中的天数
}
public static int getSumOfDays()
{
return 0;
}

}

public class DemoTest {
public static void main(String[] args){
int year = 2013;
int month = 12;
int day = 4;
//int sumCmp = 32;
int result = 0;
result = Demo.calcHowManyDays(year, month, day);
System.out.println("结果是:"+result);
}

}

追问

是啊 你给的测试过的了 可是测试用例不能改的 改了测试不算对 没分
5555555555555555555

本回答被提问者采纳
第4个回答  2013-12-04
Demo d = new Demo();
result = d.calcHowManyDays(year, month, day);

追问

??? 不对额

追答

从代码看没有问题, 把错误信息打印出来看看.
另外你是不是把Demo 和 DemoTest 两个class 放在同一个文件里面了?
一个文件里面只能一个class为public.

相似回答