如何找到一周中的哪一天 - Java

Eth*_*rds 9 java date

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

天=int day;

使用了一个开关来确定每个月的天数,dayMonth 所以7月有31天,有28天等.

年=int year;

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

它有时会起作用,但有时则不然.如果有任何问题随时可以提出,任何帮助表示赞赏.在此先感谢,希望它有意义!

Red*_*nja 18

您可以使用Java日历.

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

int day_of_week = c.get(Calendar.DAY_OF_WEEK);
Run Code Online (Sandbox Code Playgroud)

这给你一个int它是哪一天,你可以只提供一个数组来映射日期的"名称".


Dil*_*eep 6

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

尝试使用java.util.Calendar进行需要知道Week Days,Months等详细信息的日期操作.

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

现在你可以使用它

     Calendar calendar = Calendar.getInstance();
     calendar.set(year, month, date) ;
     int i=calendar.get(Calendar.DAY_OF_WEEK);
Run Code Online (Sandbox Code Playgroud)

在这里,i的值将从周日到周六的1-7.

  • @EthanEdwards 月将是从 0-11,星期是从 1-7 到周日-周六 (2认同)