Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.example.exercise4
- import androidx.appcompat.app.AppCompatActivity
- import android.os.Bundle
- import android.view.View
- import android.widget.CalendarView
- import android.widget.EditText
- import android.widget.TextView
- import android.widget.Toast
- import androidx.core.view.isVisible
- import java.text.DateFormat
- import java.text.SimpleDateFormat
- import java.time.LocalDate
- import java.time.chrono.ChronoLocalDate
- import java.time.chrono.ChronoPeriod
- import java.time.format.DateTimeFormatter
- import java.time.temporal.ChronoUnit
- import java.util.*
- class MainActivity : AppCompatActivity() {
- override fun onCreate(savedInstanceState: Bundle?) {
- super.onCreate(savedInstanceState)
- setContentView(R.layout.activity_main)
- // Превключване между датите с изобразяване на новите в TextView
- val cv=findViewById<CalendarView>(R.id.calendarView) /* Връзка с CalendarView*/
- // В набалото да не се вижда
- cv.isVisible=false
- cv.setOnDateChangeListener { calendarView, year, month, day ->
- val tv=findViewById<TextView>(R.id.textView)
- //tv.text= String.format("%d.%02d.%dг.",day,month+1,year) /* Показване на дата формат 23.05.2022г. */
- //tv.text= String.format("%d.%02d.%dг.",day,month+1,year-2000) /* Показване на дата формат 23.05.22г. */
- //tv.text= String.format("%d.%02d.%dг.",day,month+1,year%100) /* Показване на дата формат 23.05.22г. */
- // ИЗЧИСЛЯВАНЕ на разликата в дати!
- /* val d1=LocalDate.now() /* Променлива показваща днескашна дата*/
- val d2=LocalDate.of(year, month+1, day) /* Променлива текуща днескашна дата*/
- tv.text=ChronoUnit.DAYS.between(d1,d2).toString()+" дни" */ /* Функция изчисляваща разликите в датите*/
- // Изписване на ДАТА в избраната ТЕКСТОВА КУТИЯ
- val curr=this.currentFocus /* АКТИВЕН КОНТРОЛ-Обекта curr е обектна променлива, която сочи елемента, който е фокусиран*/
- if ( curr is EditText ) { /* Проверка ако КОНТРОЛЪТ е EditText, тогава в него се извежда избраната дата*/
- val izbor= String.format("%d.%02d.%d",day,month+1,year) /* На активният контрол му задаваме стойнот*/
- (curr as EditText).setText(izbor) /* Поставяне на съдържанието в текстовата кутия*/
- // Скриване на календара след избиране на дата в EditDateText поле
- cv.isVisible=false
- }
- }
- // Показване на календара след избиране на дата в EditDateText поле
- findViewById<EditText>(R.id.editTextDate).setOnFocusChangeListener { view, b ->
- cv.isVisible=true
- }
- // Показване на календара след избиране на дата в EditDateText2 поле
- findViewById<EditText>(R.id.editTextDate2).setOnFocusChangeListener { view, b ->
- cv.isVisible=true
- }
- }
- fun btn_dnes(view: View) { /* Функция за проверка на БУТОНА ДНЕС*/
- val tv=findViewById<TextView>(R.id.textView) /* Връзка с TextView*/
- val dnes=LocalDate.now() /* Вземаме днескашната дата*/
- // Дата по Американски тип-на обратно
- //tv.text=dnes.toString() /* Функция извеждаща текущата ДАТА в TextView*/
- // Ден(int).име на месец(string).година(int)
- //tv.text=dnes.dayOfMonth.toString()+"."+dnes.month+"."+dnes.year /* Функция извеждаща текущата ДАТА като ДЕН-МЕСЕЦ-ГОДИНА в TextView*/
- // Ден(int).месец(int).година(int)
- //tv.text=String.format("%2d.%02d.%4d",dnes.dayOfMonth,dnes.monthValue,dnes.year)
- /*// Ден(int).месец(int).година(int)
- val frm=SimpleDateFormat("d.MM.yyyy")
- val dnes2=Calendar.getInstance()
- tv.text=frm.format(dnes2.time) */
- /*
- val frm=DateTimeFormatter.ofPattern("d.MM.yyyy")
- tv.text=frm.format(dnes) */
- // Дата формат 23 Сеп 2021
- val imena= listOf("Яну","Фев","Мар","Апр","Май","Юни","Юли","Авг","Сеп","Окт","Ное","Дек")
- tv.text=dnes.dayOfMonth.toString()+"."+ imena[dnes.monthValue-1]+"."+dnes.year
- }
- fun btn_razlika(view: View) { /* Функция за проверка на БУТОНА РАЗЛИКА*/
- val ed1=findViewById<EditText>(R.id.editTextDate) /* Връзка с първа EditText1 кутия*/
- val ed2=findViewById<EditText>(R.id.editTextDate2) /* Връзка с първа EditText2 кутия*/
- if ( ed1.text.isEmpty() || ed2.text.isEmpty() ) /* Ако не са попълнени и двете полета*/
- Toast.makeText(this, "Има невъведена дата", Toast.LENGTH_SHORT).show() /* Извеждане на съобщение*/
- else {
- val maska=DateTimeFormatter.ofPattern("d.MM.yyyy")
- val date1=LocalDate.parse(ed1.text,maska) /* Преобразува съдържанието на date1 от text в стойност*/
- val date2=LocalDate.parse(ed2.text,maska) /* Преобразува съдържанието на date2 от text в стойност*/
- val tv=findViewById<TextView>(R.id.textView)
- tv.text=ChronoUnit.DAYS.between(date1,date2).toString()
- }
- }
- // Изчисляване на колко дни има до края на семестъра
- fun btn_zad(view: View) {
- val tv=findViewById<TextView>(R.id.textView)
- val dnes=LocalDate.now()
- val kam=LocalDate.of(2022, 4, 18)
- tv.text="до "+kam.toString()+" остават"+ChronoUnit.DAYS.between(dnes,kam).toString()+" дни"
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement