'타이머'에 해당되는 글 2건

  1. 2021.01.21 C# TIMER 이용한 ALARM
  2. 2021.01.12 C# TIMER 이용해서 타이머 만들기

TIMER 이용한 ALARM

 

public Form1()
{
    InitializeComponent();
}

private void Form1_Load(object sender, EventArgs e)
{
    //타이머 시작
    timer1.Enabled = true;
    timer1.Interval = 1000; //1초마다 갱신

    //ComboBox item 추가
    datelist.Items.Add("회의");
    datelist.Items.Add("약속");
    datelist.Items.Add("식사");
    datelist.Items.Add("휴식");
    datelist.Items.Add("퇴근");
    //기본 설정 지정
    datelist.SelectedIndex = 1;
    
}

//추가 버튼
private void btn_add_Click(object sender, EventArgs e)
{
    string date = "";
    if (datelist.SelectedIndex >= 0)
    {
        date = datelist.Items[datelist.SelectedIndex].ToString();
    }
    //입력
    if (maskedTextBox1.Text.Length == 5)
    {
        string list = maskedTextBox1.Text.Substring(0, 5).Trim();
        list = list + ", " + date;
        listBox1.Items.Add(list);
        maskedTextBox1.Clear();
        datelist.SelectedIndex = 1;
        //커서 위치 변경
        maskedTextBox1.Focus();
        maskedTextBox1.SelectionStart = 0;
    }
    //입력을 잘못 했을 경우
    else
    {
        MessageBox.Show("다시 입력해주세요");
        maskedTextBox1.Clear();
        datelist.SelectedIndex = 1;
        //커서 위치 변경
        maskedTextBox1.Focus();
        maskedTextBox1.SelectionStart = 0;
    }
}

//제거 버튼
private void btn_remove_Click(object sender, EventArgs e)
{
    listBox1.Items.Remove(listBox1.SelectedItem);
}


//timer
private void timer1_Tick(object sender, EventArgs e)
{
    ArrayList delinex = new ArrayList();

    //현재 시간 출력
    DateTime date = DateTime.Now;
    label1.Text = $"{date.Hour}시 {date.Minute}분 {date.Second}초";

    //입력한 시간과 현재 시간 비교
    int i = 0;
    foreach (var input_item in listBox1.Items)
    {
        string result = string.Format("{0}", input_item);
        string[] cols = result.Split(',');
        string time = cols[0].Trim();
        string job = cols[1].Trim();
        string hourstr = time.Substring(0, 2).Trim();
        string minstr = time.Substring(3, 2).Trim();
        int hour = int.Parse(hourstr);
        int min = int.Parse(minstr);

        //입력한 시간과 현재 시간이 같을때
        if (date.Hour == hour && date.Minute == min && date.Second == 00)
        {
            if (job == "퇴근")
            {
                MessageBox.Show("퇴근입니다.");
            }
            else
            {
                MessageBox.Show(new Form { TopMost = true }, $"{job} 예정되어 있습니다.~~~ : \r\n현재 : {date.Hour}시 {date.Minute}분 {date.Second}초 입니다.", "Message");
            }
            delinex.Add(i);
        }
        i++;
    }
    

    //지난 일정은 삭제
    if (delinex != null)
    {
        delinex.Reverse();
        foreach (var del in delinex)
        {
            string delstr = string.Format("{0}", del);
            int delint = (int)Convert.ChangeType(del, typeof(int));
            listBox1.Items.RemoveAt(delint);
            delinex.Remove(delstr);

        }
    }
    
}
Posted by agape93
,

TIMER 만들기

public partial class Form1 : Form
{
    private int second;
    private int minute;
    private int start;
    private int stop;

    public Form1()
    {
        InitializeComponent();

        //프로그램 실행시 타이머 미작동
        timer1.Enabled = false;

        //초기화
        second = 0;
        minute = 0;
        start = 0;
        stop = 0;

        //프로그램 실행시 "00" 입력
        lb_sec.Items.Add("00");
        lb_min.Items.Add("00");
        lb_col.Items.Add(":");

    }

    private void btn_start_Click(object sender, EventArgs e)
    {


        //시작시 초기화
        timer1.Enabled = false;
        //처음일때만 분, 초에 "00" 제거
        if (start == 0)
        {
            lb_sec.Items.Remove("00");
            lb_min.Items.Remove("00");
            lb_col.Items.Remove(":");
        }
        //그외에는 시간 제거
        else 
        {
            lb_sec.Items.Remove(second);
            lb_min.Items.Remove(minute);
            lb_col.Items.Remove(":");
        }

        //입력
        try
        {
            minute = Int32.Parse(tb_input.Text);
            start = 0;
            stop = 0;
            lb_sec.Items.Add("00");
            lb_min.Items.Add(minute);
            lb_col.Items.Add(":");
            timer1.Enabled = true;
        }
        catch (Exception ex)
        {
            MessageBox.Show("잘못 입력하였습니다. 다시 입력하세요");
        }

    }

    private void btn_stop_Click(object sender, EventArgs e)
    {
        //정지
        if (stop == 0)
        {
            timer1.Enabled = false;
            stop = 1;
            return;
        }
        //다시 시작
        if (stop == 1)
        {
            timer1.Enabled = true;
            stop = 0;
            return;
        }

    }

    private void timer1_Tick(object sender, EventArgs e)
    {
        //처음 시작시
        if (start == 0)
        {
            lb_min.Items.Remove(minute);
            minute--;
            lb_min.Items.Add(minute);

            lb_sec.Items.Remove("00");
            second = 60;
            second--;
            lb_sec.Items.Add(second);

            lb_col.Items.Remove(":");
            start++;
        }
        //그 외
        else 
        {
            if (second == 60)
            {
                lb_sec.Items.Remove("00");
            }
            else
            {
                lb_sec.Items.Remove(second);
            }
            second--;

            if (second == 59)
            {
                lb_min.Items.Remove(minute);
                minute--;
                lb_min.Items.Add(minute);
            }

            //2초에 한번씩 ":" 깜박임
            if (second % 2 == 1)
            {
                lb_col.Items.Remove(":");
            }
            else
            {
                lb_col.Items.Add(":");
            }

            if (second == 0 && minute == 0)
            {
                timer1.Enabled = false;
                lb_sec.Items.Add(second);
                MessageBox.Show("완료되었습니다.");
                return;
            }

            if (second == 0)
            {
                lb_sec.Items.Add("00");
                second = 60;
            }
            else
            {
                lb_sec.Items.Add(second);
            }
        }

    }
}

참고
https://makemethink.tistory.com/127

Posted by agape93
,