在Android开发中将日期提前9个月零10天
Posted
技术标签:
【中文标题】在Android开发中将日期提前9个月零10天【英文标题】:Advancing the date by 9 months and 10 days in Android Development 【发布时间】:2012-07-02 07:40:16 【问题描述】:我想为我的应用创建一个妊娠期计算器。我想获取用户在日期时间选择器中选择的日期,并将该日期提前 9 个月零 10 天,然后在 textView 中打印出来。我可以从日期选择器中获取日期并将日期打印到 textView 中,但我现在需要做的是将日期提前 9 个月零 10 天。有任何想法吗?这是我当前从日期选择器获取日期并将其打印到文本视图的代码。
public class GestationPeriod extends Activity
DatePicker date;
TextView gestationperiodView;
public void onCreate(Bundle savedInstanceState)
super.onCreate(savedInstanceState);
setContentView(R.layout.gestationperiod);
setupVariables();
public void calculate(View v)
int gestationPeriodMonth = 9;
int gestationPeriodDay = 10;
int year = date.getYear();
int month = date.getMonth();
int day = date.getDayOfMonth();
gestationperiodView.setText("" + day + " / " + month + " / " + year);
private void setupVariables()
date = (DatePicker) findViewById(R.id.datePicker1);
gestationperiodView = (TextView) findViewById(R.id.editText1);
您的帮助将不胜感激。
【问题讨论】:
【参考方案1】:使用java.util.Calendar.add(int field, int amount)。在得到日、月、年之后,在gestationperiodView.setText
之前,插入:
Calendar c = new Calendar();
c.set(year, month-1, day);
c.add(Calendar.DAY_OF_MONTH, gestationPeriodDay);
c.add(Calendar.MONTH, gestationPeriodMonth);
day = c.get(Calendar.DAY_OF_MONTH);
month = c.get(Calendar.MONTH) + 1;
year = c.get(Calendar.YEAR);
【讨论】:
请注意,由于夏季时间,您可能会遇到有趣的行为。 我应该在哪里将它添加到我的代码中,以便在 textView 中显示高级日期?抱歉,我现在是 android 开发的新手以上是关于在Android开发中将日期提前9个月零10天的主要内容,如果未能解决你的问题,请参考以下文章