본문 바로가기

Programing (프로그래밍)/WPF & C# (C Sharp)

WPF & C# - 특정한 날짜 & 요일 & 시간 사이인지 여부 ( day / week / dayofweek )

728x90
반응형
 WPF & C# - 특정한 날짜 & 요일 & 시간 사이인지 여부 ( day / week / dayofweek )

 

특정날짜 + 특정 시간 인지 여부 - 1회성

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
///// 특정날짜 + 특정시간 사이인지 여부 - 1회성
private void btn01_Click(object sender, RoutedEventArgs e)
{
    string dtStr01 = "2022-05-05 22:13:30";
    string dtStr02 = "2022-05-05 22:22:00";
 
    btn01.Content = isCurrentTime01(dtStr01, dtStr02);
}
 
bool isCurrentTime01(string dtStr01, string dtStr02)    // 0001-01-01 00:00:00 ~ 9999-12-31 23:59:59
{
    DateTime dt01 = DateTime.Parse(dtStr01);
    DateTime dt02 = DateTime.Parse(dtStr02);
    DateTime dtNow = DateTime.Now;
 
    if (dt01 < dtNow && dtNow < dt02)
    {
        return true;
    }
    return false;
}
cs

 

특정시간 사이인지 여부 - 매일 정해진 시간

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
///// 매일 + 특정시간 사이인지 여부 - 매일 정해진 시간
private void btn02_Click(object sender, RoutedEventArgs e)
{
    string dtStr01 = "22:13:30";
    string dtStr02 = "22:40:00";
 
    btn02.Content = isCurrentTime02(dtStr01, dtStr02);
}
 
bool isCurrentTime02(string dtStr01, string dtStr02)    // 00:00:00 ~ 23:59:59
{
    long ldt01 = long.Parse(dtStr01.Replace(":"""));
    long ldt02 = long.Parse(dtStr02.Replace(":"""));
    long ldtNow = long.Parse(String.Format(DateTime.Now.ToString("HHmmss")));
 
    if (ldt01 < ldtNow && ldtNow < ldt02)
    {
        return true;
    }
    return false;
}
cs

 

특정요일 + 특정시간 사이인지 여부 (일월화수목금토)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
///// 특정요일 & 특정시간 사이인지 여부 (일월화수목금토)
 
private void btn03_Click(object sender, RoutedEventArgs e)
{
    string dtStr01 = "22:13:30";
    string dtStr02 = "23:40:00";
    string strWeeks = "일월금토";
 
    btn03.Content = isCurrentTime03(dtStr01, dtStr02, strWeeks);
}
 
bool isCurrentTime03(string dtStr01, string dtStr02, string strWeeks)    // 00:00:00 ~ 23:59:59
{
    long ldt01 = long.Parse(dtStr01.Replace(":"""));
    long ldt02 = long.Parse(dtStr02.Replace(":"""));
    long ldtNow = long.Parse(String.Format(DateTime.Now.ToString("HHmmss")));
 
    string[] arrWeek = { "일""월""화""수""목""금""토" };
    int idx = (int)DateTime.Now.DayOfWeek;    // 요일을 숫자로 반환
    if (strWeeks.IndexOf(arrWeek[idx]) >= 0)    // strWeeks 중에 현재 요일이 있는지 확인 
    {
        // 시간 확인
        if (ldt01 < ldtNow && ldtNow < ldt02)
        {
            return true;
        }
    }
    return false;
}
cs
728x90
반응형