在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天的主要内容,如果未能解决你的问题,请参考以下文章

宅男也可变形男-我是如何在11个月零27天减掉80斤的

如何用PHP+MySQL计算两个日期之间的月份数和其余下的天数?

怎样在EXCEL计算两个日期中间间隔几年几个月几天

赛码 #1649 日期倒计时

如何在 Hive SQL 中获取本季度与上一季度的对比

在Android中将字符串日期转换为时间戳?