Advertisement
deyanivanov966

Упражнение 4. Работа с дати

Jun 2nd, 2022
960
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Kotlin 6.00 KB | None | 0 0
  1. import androidx.appcompat.app.AppCompatActivity
  2. import android.os.Bundle
  3. import android.view.View
  4. import android.widget.CalendarView
  5. import android.widget.EditText
  6. import android.widget.TextView
  7. import android.widget.Toast
  8. import androidx.core.view.isVisible
  9. import java.text.DateFormat
  10. import java.text.SimpleDateFormat
  11. import java.time.LocalDate
  12. import java.time.chrono.ChronoLocalDate
  13. import java.time.chrono.ChronoPeriod
  14. import java.time.format.DateTimeFormatter
  15. import java.time.temporal.ChronoUnit
  16. import java.util.*
  17.  
  18. class MainActivity : AppCompatActivity() {
  19.     override fun onCreate(savedInstanceState: Bundle?) {
  20.         super.onCreate(savedInstanceState)
  21.         setContentView(R.layout.activity_main)
  22.  
  23.         val cv=findViewById<CalendarView>(R.id.calendarView)
  24.         cv.isVisible=false
  25.         cv.setOnDateChangeListener { calendarView, year, month, day ->
  26.             val tv=findViewById<TextView>(R.id.textView)
  27.  
  28.             //tv.text= String.format("%d.%02d.%dг.",day,month+1,year)
  29.             //tv.text= String.format("%d.%02d.%dг.",day,month+1,year%100)
  30.             // Изчисляване на разлика в дати
  31.             //val d1=LocalDate.now()
  32.             //val d2=LocalDate.of(year,month+1,day)
  33.             //tv.text=ChronoPeriod.between(d1,d2).toString()
  34.             //tv.text=ChronoUnit.DAYS.between(d1,d2).toString()+" дни"
  35.             // Активният контрол
  36.             val curr=this.currentFocus
  37.             // Ако контролът е EditText
  38.             if( curr is EditText) {
  39.                 val izbor=String.format("%d.%02d.%d",day,month+1,year)
  40.                 // На активният контрол му задаваме стойност
  41.                 (curr as EditText).setText(izbor)
  42.                 cv.isVisible=false
  43.             }
  44.         }
  45.         findViewById<EditText>(R.id.editTextDate).setOnFocusChangeListener { view, b ->
  46.             cv.isVisible=true
  47.         }
  48.         findViewById<EditText>(R.id.editTextDate2).setOnFocusChangeListener { view, b ->
  49.             cv.isVisible=true
  50.         }
  51.     }
  52.  
  53.     fun btn_dnes(view:View){
  54.         val tv=findViewById<TextView>(R.id.textView)
  55.         val dnes=LocalDate.now()
  56.         //tv.text=dnes.toString()
  57.  
  58.         // Ден.име на месец.година
  59.         //tv.text=dnes.dayOfMonth.toString()+"."+dnes.month+"."+dnes.year
  60.  
  61.         // ден.месец.година
  62.         //tv.text=String.format("%2d.%02d.%4d",dnes.dayOfMonth,dnes.monthValue,dnes.year)
  63.  
  64.         //val frm=SimpleDateFormat("d/MM/yyyy")
  65.         //val dnes2= Calendar.getInstance()
  66.         //tv.text=frm.format(dnes2.time)
  67.  
  68.         //val frm=DateTimeFormatter.ofPattern("d.MM.yyyy")
  69.         //tv.text=frm.format(dnes)
  70.  
  71.         val imena= listOf("Яну","Фев","Мар","Апр","Май","Юни","Юли","Авг","Сеп","Окт","Ное","Дек")
  72.         //tv.text=dnes.dayOfMonth.toString()+"."+ imena[dnes.monthValue]+"."+dnes.year
  73.         tv.text= String.format("%d.%s.%d",dnes.dayOfMonth,imena[dnes.monthValue-1],dnes.year)
  74.     }
  75.  
  76.     fun btn_razlika(view: View) {
  77.         val ed1=findViewById<EditText>(R.id.editTextDate)
  78.         val ed2=findViewById<EditText>(R.id.editTextDate2)
  79.         if( ed1.text.isEmpty() || ed2.text.isEmpty() )
  80.             Toast.makeText(this, "Има невъведена дата", Toast.LENGTH_SHORT).show()
  81.         else {
  82.             val maska=DateTimeFormatter.ofPattern("d.MM.yyyy")
  83.             val date1=LocalDate.parse(ed1.text,maska)
  84.             val date2=LocalDate.parse(ed2.text,maska)
  85.             val tv=findViewById<TextView>(R.id.textView)
  86.             tv.text=ChronoUnit.DAYS.between(date1,date2).toString()
  87.         }
  88.     }
  89.  
  90.     fun btn_zad(view: View) {
  91.         val tv=findViewById<TextView>(R.id.textView)
  92.         val dnes=LocalDate.now()
  93.         val kam=LocalDate.of(2022,4,18)
  94.         tv.text="до "+kam.toString()+" остават "+
  95.                 ChronoUnit.DAYS.between(dnes,kam).toString()+" дни"
  96.     }
  97. }
  98.  
  99. <TextView
  100.     android:id="@+id/textView"
  101.     android:layout_width="wrap_content"
  102.     android:layout_height="wrap_content"
  103.     android:layout_marginStart="20dp"
  104.     android:layout_marginTop="40dp"
  105.     android:text="Hello World!"
  106.     app:layout_constraintStart_toEndOf="@+id/button"
  107.     app:layout_constraintTop_toBottomOf="@+id/button2" />
  108.  
  109. <EditText
  110.     android:id="@+id/editTextDate"
  111.     android:layout_width="wrap_content"
  112.     android:layout_height="wrap_content"
  113.     android:layout_marginStart="56dp"
  114.     android:layout_marginTop="16dp"
  115.     android:ems="10"
  116.     android:inputType="date"
  117.     app:layout_constraintStart_toStartOf="parent"
  118.     app:layout_constraintTop_toTopOf="parent" />
  119.  
  120. <EditText
  121.     android:id="@+id/editTextDate2"
  122.     android:layout_width="wrap_content"
  123.     android:layout_height="wrap_content"
  124.     android:ems="10"
  125.     android:inputType="date"
  126.     app:layout_constraintStart_toStartOf="@+id/editTextDate"
  127.     app:layout_constraintTop_toBottomOf="@+id/editTextDate" />
  128.  
  129. <Button
  130.     android:id="@+id/button"
  131.     android:layout_width="wrap_content"
  132.     android:layout_height="wrap_content"
  133.     android:layout_marginTop="17dp"
  134.     android:onClick="btn_zad"
  135.     android:text="Dnes"
  136.     app:layout_constraintStart_toStartOf="@+id/editTextDate2"
  137.     app:layout_constraintTop_toBottomOf="@+id/editTextDate2" />
  138.  
  139. <Button
  140.     android:id="@+id/button2"
  141.     android:layout_width="wrap_content"
  142.     android:layout_height="wrap_content"
  143.     android:layout_marginStart="61dp"
  144.     android:layout_marginTop="17dp"
  145.     android:onClick="btn_razlika"
  146.     android:text="Razlika"
  147.     app:layout_constraintStart_toEndOf="@+id/button"
  148.     app:layout_constraintTop_toBottomOf="@+id/editTextDate2" />
  149.  
  150. <CalendarView
  151.     android:id="@+id/calendarView"
  152.     android:layout_width="wrap_content"
  153.     android:layout_height="wrap_content"
  154.     android:layout_marginStart="30dp"
  155.     android:layout_marginBottom="25dp"
  156.     app:layout_constraintBottom_toBottomOf="parent"
  157.     app:layout_constraintStart_toStartOf="parent" />
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement