9

还有一些其他问题几乎相同,但我似乎无法让我的代码工作。我得到了生日 dd/mm/yyyy 的用户输入。顺便说一句,我忽略了闰年。我试图确定用户出生时是一周中的哪一天。我必须确定他们从某个特定日期出生多少天,在这种情况下是 1901 年 1 月 1 日星期二。这就是我这样做的原因year-1901

天=int day;

使用一个开关来确定每个月有多少天,dayMonth 所以 7 月有 31 天,2 月有 28 天,等等。

年=int year;

String[] days =
         {"Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"};
howManyDays = ((year-1901)*365 + dayMonth + day - 1);       
whatDay = (howManyDays%7);
days[whatDay]

它有时有效,但有时却无效。任何帮助表示赞赏,如果有任何问题随时提出。在此先感谢,希望它有意义!

4

2 回答 2

18

您可以使用 Java 日历。

Calendar c = Calendar.getInstance();
c.set(year, month, day);

int day_of_week = c.get(Calendar.DAY_OF_WEEK);

这为您提供了一个 int 星期几,您可以只提供一个数组来映射日期的“名称”。

于 2013-08-20T10:56:24.590 回答
7

您使用的代码无法在任何标准日期操作中实现,因为有很多情况,如闰年等。

尝试将java.util.Calendar用于需要了解工作日、月份等详细信息的日期操作。

对于更复杂的日期功能,请使用JODA 日历。Joda Calendar 速度很快,并且有很多操作,例如两天之间的天数等。您可以查看上面的链接以获取更多详细信息。

现在你可以使用这个

     Calendar calendar = Calendar.getInstance();
     calendar.set(year, month, date) ;
     int i=calendar.get(Calendar.DAY_OF_WEEK);

在这里,周日到周六的 i 值将是 1-7。

于 2013-08-20T11:06:09.077 回答