EX10_03.java
上传用户:vip_99
上传日期:2021-03-27
资源大小:61159k
文件大小:5k
源码类别:

android开发

开发平台:

Java

  1. package irdc.ex10_03;
  2. import java.io.BufferedOutputStream;
  3. import java.io.FileNotFoundException;
  4. import java.io.FileOutputStream;
  5. import java.io.IOException;
  6. import java.util.Properties;
  7. import android.app.Activity;
  8. import android.content.Intent;
  9. import android.os.Bundle;
  10. import android.view.View;
  11. import android.widget.Button;
  12. import android.widget.TextView;
  13. public class EX10_03 extends Activity
  14. {
  15.   /* 放置设置值的文件 */
  16.   public static String fileName = "mc.ini";
  17.   /* 上次MC第一天的日期 */
  18.   public static String mcdate_key = "mcdate";
  19.   private String mcdate_value = "";
  20.   /* MC周期 */
  21.   public static String period_key = "period";
  22.   private String period_value = "28";
  23.   /* 每日提醒时间 */
  24.   public static String remind_key = "remind";
  25.   private String remind_value = "1200";
  26.   private TextView TextView02;
  27.   private TextView TextView04;
  28.   private TextView TextView05;
  29.   private TextView TextView08;
  30.   private Button Button01;
  31.   /** Called when the activity is first created. */
  32.   @Override
  33.   public void onCreate(Bundle savedInstanceState)
  34.   {
  35.     super.onCreate(savedInstanceState);
  36.     setContentView(R.layout.main);
  37.     TextView02 = (TextView) this.findViewById(R.id.TextView02);
  38.     TextView04 = (TextView) this.findViewById(R.id.TextView04);
  39.     TextView05 = (TextView) this.findViewById(R.id.TextView05);
  40.     TextView08 = (TextView) this.findViewById(R.id.TextView08);
  41.     Button01 = (Button) this.findViewById(R.id.Button01);
  42.     /* 打开设置画面 */
  43.     Button01.setOnClickListener(new Button.OnClickListener()
  44.     {
  45.       @Override
  46.       public void onClick(View arg0)
  47.       {
  48.         Intent intent = new Intent();
  49.         intent.setClass(EX10_03.this, EX10_03_1.class);
  50.         Bundle bundle = new Bundle();
  51.         bundle.putString(mcdate_key, mcdate_value);
  52.         bundle.putString(period_key, period_value);
  53.         bundle.putString(remind_key, remind_value);
  54.         intent.putExtras(bundle);
  55.         startActivity(intent);
  56.         finish();
  57.       }
  58.     });
  59.     /* 检查文件mc.ini是否存在 */
  60.     checkFile();
  61.     /* 算有关日期 */
  62.     calDate();
  63.   }
  64.   /* 检查文件mc.ini是否存在 */
  65.   private void checkFile()
  66.   {
  67.     boolean isExit = true;
  68.     FileOutputStream fos = null;
  69.     try
  70.     {
  71.       openFileInput(fileName);
  72.     }
  73.     catch (FileNotFoundException e)
  74.     {
  75.       isExit = false;
  76.     }
  77.     if (!isExit)
  78.     {
  79.       try
  80.       {
  81.         fos = openFileOutput(fileName, MODE_WORLD_WRITEABLE);
  82.         BufferedOutputStream bos = new BufferedOutputStream(fos);
  83.         /* 系统日期为上次MC第一天的日期 */
  84.         mcdate_value = DateUtil.getDateTime("yyyyMMdd", System
  85.             .currentTimeMillis());
  86.         String txt = mcdate_key + "=" + mcdate_value;
  87.         bos.write(txt.getBytes());
  88.         /* 周期为28天 */
  89.         bos.write(new String("n").getBytes());
  90.         txt = period_key + "=" + period_value;
  91.         bos.write(txt.getBytes());
  92.         /* 提醒时间为中午12点 */
  93.         bos.write(new String("n").getBytes());
  94.         txt = remind_key + "=" + remind_value;
  95.         bos.write(txt.getBytes());
  96.         bos.close();
  97.         fos.close();
  98.       }
  99.       catch (FileNotFoundException e)
  100.       {
  101.         e.printStackTrace();
  102.       }
  103.       catch (IOException e)
  104.       {
  105.         e.printStackTrace();
  106.       }
  107.     }
  108.     /* 将文件mc.ini里的值取出 */
  109.     Properties p = new Properties();
  110.     try
  111.     {
  112.       p.load(openFileInput(fileName));
  113.       mcdate_value = p.getProperty(mcdate_key);
  114.       period_value = p.getProperty(period_key);
  115.       remind_value = p.getProperty(remind_key);
  116.     }
  117.     catch (FileNotFoundException e)
  118.     {
  119.       e.printStackTrace();
  120.     }
  121.     catch (IOException e)
  122.     {
  123.       e.printStackTrace();
  124.     }
  125.   }
  126.   private void calDate()
  127.   {
  128.     String format = "yyyy.MM.dd";
  129.     /* 上次MC第一天的日期 */
  130.     TextView02.setText(DateUtil
  131.         .getNextDate(mcdate_value, 0, format));
  132.     /* 预估下次MC日期 */
  133.     TextView04.setText(DateUtil.getNextDate(mcdate_value, Integer
  134.         .parseInt(period_value), format));
  135.     /* 距离现在还有N天 */
  136.     String nDate = DateUtil.getNextDate(mcdate_value, Integer
  137.         .parseInt(period_value), "yyyyMMdd");
  138.     int days = DateUtil.computerDiffDate(DateUtil
  139.         .getDateTime(nDate), System.currentTimeMillis());
  140.     String text = "";
  141.     if (days >= 0)
  142.     {
  143.       text += getResources().getString(R.string.strMessage5);
  144.       text += days;
  145.       text += getResources().getString(R.string.strMessage7);
  146.     }
  147.     else
  148.     {
  149.       text += getResources().getString(R.string.strMessage8);
  150.       text += Math.abs(days);
  151.       text += getResources().getString(R.string.strMessage7);
  152.     }
  153.     TextView05.setText(text);
  154.     /* 排卵日,公式=即从下次月经来潮的第一天起,倒数14天就是排卵期 */
  155.     TextView08.setText(DateUtil.getNextDate(nDate, -14, format));
  156.   }
  157. }