Java的增加星期日期 [英] Java adding week to date
问题描述
我的code应该在每次运行时加1星期,但设置JAAR时至2015年,并以每周50并运行以下code多次:
GregorianCalendar的CAL =新的GregorianCalendar();
cal.set(Calendar.YEAR,JAAR);
cal.set(Calendar.WEEK_OF_YEAR,周);
cal.add(Calendar.WEEK_OF_YEAR,1);
JAAR = cal.get(Calendar.YEAR);
本周= cal.get(Calendar.WEEK_OF_YEAR);
Log.d(JAAR,Integer.toString(JAAR));
Log.d(周,Integer.toString(周));
的输出是:
JAAR:2015年
周:51
JAAR:2015年
周:52
JAAR:2016年
周:53
JAAR:2017年
周:2
JAAR:2017年
周:3
所以,code不工作。请大家帮帮忙。
编辑:
当用户$ P $工具栏中psses一个图标codeS运行:
公共静态INT JAAR;
公共静态INT一周;
公共GregorianCalendar的CAL =新的GregorianCalendar();
@覆盖
保护无效的onCreate(包savedInstanceState){
super.onCreate(savedInstanceState);
的setContentView(R.layout.activity_main);
GregorianCalendar的calendar2 =新的GregorianCalendar();
捆绑额外= getIntent()getExtras()。
如果(临时演员== NULL){
周= 50;
JAAR = calendar2.get(Calendar.YEAR);
} 其他 {
本周= extras.getInt(周);
JAAR = extras.getInt(JAAR);
}
}
如果(ID == R.id.action_volgende){
cal.set(Calendar.YEAR,JAAR);
cal.set(Calendar.WEEK_OF_YEAR,周);
cal.add(Calendar.WEEK_OF_YEAR,1);
JAAR = cal.get(Calendar.YEAR);
本周= cal.get(Calendar.WEEK_OF_YEAR);
Log.d(JAAR,Integer.toString(JAAR));
Log.d(周,Integer.toString(周));
意图I =新的意图(MainActivity.this,MainActivity.class);
i.putExtra(周,周);
i.putExtra(JAAR,JAAR);
startActivity(ⅰ);
完();
检查每台code执行时间一周,一年中值。我跑到下面的code相似,你的,但不完全,和它的作品,你会期望:
INT JAAR = 2015;
INT周= 50;
GregorianCalendar的CAL =新的GregorianCalendar();
cal.set(Calendar.YEAR,JAAR);
cal.set(Calendar.WEEK_OF_YEAR,周);
而(真)//循环,总是将1周。
{
cal.add(Calendar.WEEK_OF_YEAR,1);
JAAR = cal.get(Calendar.YEAR);
本周= cal.get(Calendar.WEEK_OF_YEAR);
的System.out.println(JAAR:+ JAAR);
的System.out.println(周:+周);
}
结果是:
JAAR:2015年 周:51
JAAR:2015年 周:52
JAAR:2016年 周:1
JAAR:2016年 周:2
My code should add 1 week each time it runs but when setting jaar to 2015 and week to 50 and running the following code multiple times:
GregorianCalendar cal = new GregorianCalendar();
cal.set(Calendar.YEAR, jaar);
cal.set(Calendar.WEEK_OF_YEAR, week);
cal.add(Calendar.WEEK_OF_YEAR, 1);
jaar = cal.get(Calendar.YEAR);
week = cal.get(Calendar.WEEK_OF_YEAR);
Log.d("jaar", Integer.toString(jaar));
Log.d("week", Integer.toString(week));
The output is:
jaar: 2015
week: 51
jaar: 2015
week: 52
jaar: 2016
week: 53
jaar: 2017
week: 2
jaar: 2017
week: 3
So the code is not working. Please help.
Edit:
The codes run when the user presses an icon in the tool bar:
public static int jaar;
public static int week;
public GregorianCalendar cal = new GregorianCalendar();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
GregorianCalendar calendar2 = new GregorianCalendar();
Bundle extras = getIntent().getExtras();
if(extras == null) {
week = 50;
jaar = calendar2.get(Calendar.YEAR);
} else {
week = extras.getInt("week");
jaar = extras.getInt("jaar");
}
}
if (id == R.id.action_volgende) {
cal.set(Calendar.YEAR, jaar);
cal.set(Calendar.WEEK_OF_YEAR, week);
cal.add(Calendar.WEEK_OF_YEAR, 1);
jaar = cal.get(Calendar.YEAR);
week = cal.get(Calendar.WEEK_OF_YEAR);
Log.d("jaar", Integer.toString(jaar));
Log.d("week", Integer.toString(week));
Intent i=new Intent(MainActivity.this,MainActivity.class);
i.putExtra("week", week);
i.putExtra("jaar", jaar);
startActivity(i);
finish();
Check your values of week and year each time your code executes. I ran the following code similar to yours, but not exactly, and it works as you would expect:
int jaar = 2015;
int week = 50;
GregorianCalendar cal = new GregorianCalendar();
cal.set(Calendar.YEAR, jaar);
cal.set(Calendar.WEEK_OF_YEAR, week);
while(true) //loop that always adds 1 to week.
{
cal.add(Calendar.WEEK_OF_YEAR, 1);
jaar = cal.get(Calendar.YEAR);
week = cal.get(Calendar.WEEK_OF_YEAR);
System.out.println("jaar: " + jaar);
System.out.println("week: " + week);
}
Results in:
jaar: 2015 week: 51
jaar: 2015 week: 52
jaar: 2016 week: 1
jaar: 2016 week: 2
这篇关于Java的增加星期日期的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!