还有一些其他问题几乎相同,但我似乎无法让我的代码工作.我得到了生日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它是哪一天,你可以只提供一个数组来映射日期的"名称".
您使用的代码无法在任何标准日期操作中实现,因为有许多情况,如闰年等.
尝试使用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.
| 归档时间: |
|
| 查看次数: |
86065 次 |
| 最近记录: |