Guest User

Untitled

a guest
Apr 19th, 2018
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.53 KB | None | 0 0
  1. package de.test.trafficlightcountdown;
  2.  
  3. import java.text.DateFormat;
  4. import java.text.NumberFormat;
  5. import java.text.SimpleDateFormat;
  6. import java.util.Date;
  7. import java.util.Locale;
  8. import java.util.concurrent.TimeUnit;
  9.  
  10. import de.werneritsolutions.trafficlightcountdown.R;
  11.  
  12. import android.app.Activity;
  13. import android.net.ParseException;
  14. import android.os.Bundle;
  15. import android.os.CountDownTimer;
  16. import android.util.Log;
  17. import android.view.View;
  18. import android.widget.Button;
  19. import android.widget.TextView;
  20. import android.widget.Toast;
  21.  
  22. public class TrafficLightCountdownActivity extends Activity
  23. {
  24. TextView day,hour,min,sec;
  25. int iDay,iHour,iMin,iSec;
  26. MyCount counter;
  27. Date endDate = null;
  28. Date startDate = null;
  29. NumberFormat myFormat = NumberFormat.getInstance();
  30.  
  31. @Override
  32. public void onCreate(Bundle savedInstanceState)
  33. {
  34. super.onCreate(savedInstanceState);
  35. setContentView(R.layout.main);
  36. final SimpleDateFormat outputFormat = new SimpleDateFormat("HH:mm:ss");
  37. day=(TextView)findViewById(R.id.day);
  38. hour=(TextView)findViewById(R.id.hour);
  39. min=(TextView)findViewById(R.id.min);
  40. sec=(TextView)findViewById(R.id.sec);
  41. myFormat.setMinimumIntegerDigits(2);
  42.  
  43. final String currentDate = outputFormat.format(new Date());
  44.  
  45. Button btnStart=(Button)findViewById(R.id.btnstart);
  46.  
  47. btnStart.setOnClickListener(new View.OnClickListener()
  48. {
  49. public void onClick(View arg0)
  50. {
  51. try
  52. {
  53. try
  54. {
  55. endDate = outputFormat.parse(nextDate);
  56. }
  57. catch (java.text.ParseException e)
  58. {
  59. e.printStackTrace();
  60. }
  61. try
  62. {
  63. startDate=outputFormat.parse(currentDate);
  64. }
  65. catch (java.text.ParseException e)
  66. {
  67. e.printStackTrace();
  68. }
  69. long diffInMis= endDate.getTime() - startDate.getTime();
  70. if(diffInMis<0)
  71. {
  72. Toast.makeText(getBaseContext(), "Please, Enter valid Time...",Toast.LENGTH_SHORT).show();
  73. }
  74. else
  75. {
  76. long diff = TimeUnit.MILLISECONDS.toSeconds(diffInMis);
  77. iDay=(int) (diff/(60*60*24));
  78. long lday= (diff%(60*60*24));
  79. iHour=(int)(lday/3600);
  80. long lhour= (lday%(60*60));
  81. iMin=(int)(lhour/60);
  82. long lmin= (lhour%(60));
  83. iSec=(int)(lmin);
  84. hour.setText(String.valueOf(myFormat.format(iHour)).toString());
  85. min.setText(":"+String.valueOf(myFormat.format(iMin)).toString());
  86. sec.setText(":"+String.valueOf(myFormat.format(iSec)).toString());
  87. counter = new MyCount(iSec*1000,1000);
  88. counter.start();
  89. }
  90. }
  91. catch (ParseException e)
  92. {
  93. e.printStackTrace();
  94. }
  95. };
  96. });
  97.  
  98. Button btnStop=(Button)findViewById(R.id.btnstop);
  99. btnStop.setOnClickListener(new View.OnClickListener()
  100. {
  101. public void onClick(View arg0)
  102. {
  103. counter.cancel();
  104. hour.setText("00");
  105. min.setText(":"+"00");
  106. sec.setText(":"+"00");
  107. }
  108. });
  109. }
  110.  
  111. public class MyCount extends CountDownTimer
  112. {
  113. public MyCount(long millisInFuture, long countDownInterval)
  114. {
  115. super(millisInFuture, countDownInterval);
  116. }
  117. @Override
  118. public void onFinish()
  119. {
  120. counter = new MyCount(60000,1000);
  121. counter.start();
  122. iMin-=1;
  123. if(iMin>-1)
  124. {
  125. min.setText(":"+String.valueOf(myFormat.format(iMin)).toString());
  126. }
  127. else
  128. {
  129. iMin=59;
  130. min.setText(":"+String.valueOf(myFormat.format(iMin)).toString());
  131. iHour-=1;
  132. if(iHour>-1)
  133. {
  134. hour.setText(String.valueOf(myFormat.format(iHour)).toString());
  135. }
  136. else
  137. {
  138. iHour=11;
  139. hour.setText(String.valueOf(myFormat.format(iHour)).toString());
  140. iDay-=1;
  141. if(iDay>-1)
  142. {
  143. day.setText(" "+String.valueOf(iDay).toString());
  144. }
  145. else
  146. {
  147. day.setText("Green!");
  148. hour.setText("");
  149. min.setText("");
  150. sec.setText("");
  151. counter.cancel();
  152. }
  153. }
  154. }
  155. }
  156.  
  157. @Override
  158. public void onTick(long millisUntilFinished)
  159. {
  160. sec.setText(":"+String.valueOf(myFormat.format(millisUntilFinished/1000)));
  161. }
  162. }
  163. }
Add Comment
Please, Sign In to add comment