formatting datetime
authorEugene Crosser <crosser@average.org>
Wed, 25 Jan 2012 23:00:43 +0000 (03:00 +0400)
committerEugene Crosser <crosser@average.org>
Wed, 25 Jan 2012 23:00:43 +0000 (03:00 +0400)
res/layout/main.xml
res/values/strings.xml
src/org/average/whereami/WhereAmI.java

index cb95f7ad5eb8d1af95b726ba42dcd7c0a774ed78..58c56a2043d09593fbb308c3d3cad62606aea905 100644 (file)
@@ -12,7 +12,6 @@
     android:gravity="center"
     android:layout_weight="1"
     android:textColor="#ff000000"
-    android:text="Hello, WhereAmI?!"
   />
 </LinearLayout>
 
index 41dfd0eb3df9f998f91ffd32c51ff7db2bcfd012..09882c2a58a7210637087cbf11a8eeee6d5a082c 100644 (file)
@@ -1,4 +1,28 @@
 <?xml version="1.0" encoding="utf-8"?>
 <resources>
     <string name="app_name">WhereAmI</string>
+    <string name="greet">Где это я?!</string>
+    <string-array name="month">
+        <item>января</item>
+        <item>февраля</item>
+        <item>марта</item>
+        <item>апреля</item>
+        <item>мая</item>
+        <item>июня</item>
+        <item>июля</item>
+        <item>августа</item>
+        <item>сентября</item>
+        <item>октября</item>
+        <item>ноября</item>
+        <item>декабря</item>
+    </string-array>
+    <string-array name="wday">
+        <item>Воскресенье</item>
+        <item>Понедельник</item>
+        <item>Вторник</item>
+        <item>Среда</item>
+        <item>Четверг</item>
+        <item>Пятница</item>
+        <item>Суббота</item>
+    </string-array>
 </resources>
index 11867938dfed201f1baca8a0cd6d9f36b6d51766..f4403642a1a4b4d96380eea192e9c92f68da0a8b 100644 (file)
@@ -5,6 +5,8 @@ import android.os.Bundle;
 import android.os.AsyncTask;
 import android.os.Handler;
 import android.os.SystemClock;
+import android.content.res.Resources;
+import android.text.format.Time;
 import android.util.Log;
 import android.view.View;
 import android.view.Window;
@@ -14,6 +16,9 @@ import android.widget.TextView;
 public class WhereAmI extends Activity
 {
     private TextView tv;
+    private Resources res;
+    private String[] month;
+    private String[] wday;
 
     /** Called when the activity is first created. */
     @Override
@@ -24,9 +29,15 @@ public class WhereAmI extends Activity
         getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
         getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN);
         setContentView(R.layout.main);
+        res = getResources();
+        month = res.getStringArray(R.array.month);
+        wday = res.getStringArray(R.array.wday);
+        Log.v("WhereAmI","month length " + Integer.toString(month.length));
+        Log.v("WhereAmI","wday length " + Integer.toString(wday.length));
         tv = (TextView)findViewById(R.id.tv);
+        tv.setText(R.string.greet);
         Log.v("WhereAmI", "created UI, about to start update task");
-       mHandler.postDelayed(updateClock, 2000);
+       mHandler.postDelayed(updateClock, 1000);
         Log.v("WhereAmI", "created UI, update task created");
     }
 
@@ -34,11 +45,23 @@ public class WhereAmI extends Activity
 
     private Runnable updateClock = new Runnable () {
         public void run() {
-            long millis = System.currentTimeMillis();
-            Log.v("updateClock", "executing");
+            long now = System.currentTimeMillis();
+            Time tm = new Time();
+            tm.set(now);
+            Log.v("WhereAmI", "weekday is" + Integer.toString(tm.weekDay));
+            Log.v("WhereAmI", "month is" + Integer.toString(tm.month));
+            tv.setText(
+                       wday[tm.weekDay] +
+                       tm.format(", %d ") +
+                       month[tm.month] +
+                       tm.format(" %Y") +
+                       tm.format(", %H:%M%:%S"));
+            tm.second++;
+            long next = tm.toMillis(false);
+            tv.append("\n" + Long.toString(next-now+1));
+            
             // new TimedUpdateTask().execute(5); // for delayed execution
-            tv.setText(Long.toString(millis));
-            mHandler.postDelayed(this, 2000);
+            mHandler.postDelayed(this, next-now+1);
         }
     };