Java的增加星期日期 [英] Java adding week to date

查看:129
本文介绍了Java的增加星期日期的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆