Simulation von Bürgern
選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. import java.util.Date;
  2. import java.util.Calendar;
  3. import java.text.SimpleDateFormat;
  4. Date date = new Date();
  5. SimpleDateFormat dateFormat;
  6. Calendar calendar = Calendar.getInstance();
  7. //24*60 = 1440;
  8. int i_days = 1;
  9. int i_hours;
  10. int i_minutes;
  11. int i_startMinutes;
  12. int i_flexibleTime;
  13. boolean b_pauseTime;
  14. boolean b_changeTime;
  15. void initTime() {
  16. i_hours = 5;
  17. i_minutes = 0;
  18. i_startMinutes = millis();
  19. }
  20. int getFlexTime(int hour, int minute) {
  21. return (hour*60+minute);
  22. }
  23. void setTime(int hours, int minutes) {
  24. i_hours = hours;
  25. i_minutes = minutes;
  26. }
  27. void time() {
  28. //calculate time
  29. if (!b_changeTime) {
  30. if (millis() - i_startMinutes > i_timeTickMS) {
  31. i_startMinutes = millis();
  32. if (!b_pauseTime) {
  33. i_minutes++;
  34. }
  35. }
  36. if (i_minutes >= 60) {
  37. i_hours++;
  38. i_minutes = 0;
  39. }
  40. if (i_hours >= 24) {
  41. i_days++;
  42. i_hours = 0;
  43. }
  44. i_flexibleTime = i_hours*60 + i_minutes;
  45. } else {
  46. i_minutes = i_flexibleTime % 60;
  47. i_hours = (int)i_flexibleTime / 60;
  48. if (i_flexibleTime < 0) {
  49. i_days --;
  50. i_flexibleTime = 1440;
  51. }
  52. if (i_flexibleTime > 1440) {
  53. i_days++;
  54. i_flexibleTime = 0;
  55. }
  56. }
  57. //time events
  58. if ((i_flexibleTime >= getFlexTime(0, 0) && i_flexibleTime < getFlexTime(6, 0)) || i_flexibleTime > getFlexTime(23, 0)) buttons[0].b_active = true;
  59. else buttons[0].b_active = false;
  60. }