본문 바로가기
알고리즘/백준

[백준 1단계] C# 2884 알람시계

by 개발하는 디토 2022. 9. 19.

입력

첫째 줄에 두 정수 H와 M이 주어진다. (0 ≤ H ≤ 23, 0 ≤ M ≤ 59) 그리고 이것은 현재 상근이가 설정한 놓은 알람 시간 H시 M분을 의미한다.

입력 시간은 24시간 표현을 사용한다. 24시간 표현에서 하루의 시작은 0:0(자정)이고, 끝은 23:59(다음날 자정 1분 전)이다. 시간을 나타낼 때, 불필요한 0은 사용하지 않는다.

 

출력

첫째 줄에 상근이가 창영이의 방법을 사용할 때, 설정해야 하는 알람 시간을 출력한다. (입력과 같은 형태로 출력하면 된다.)

 

예제 입력 1

10 10

예제 출력 1

9 25

 

 

내 방식

using System;

namespace Baekjoon
{
    class Program
    {
        static void Main(string[] args)
        {
            string[] HM = Console.ReadLine().Split(' ');
            int H = Convert.ToInt32(HM[0]);
            int M = Convert.ToInt32(HM[1]);
            int h = 0;
            int m = 0;

            if (M >= 45)
            {
                m = M - 45;
                h = H;
            }
            else
            {
                m = 60 - (45 - M);
                h = H == 0 ? 23 : (H - 1);
            }

            Console.WriteLine(h + " " + m);
               
        }
    }
}

 

짧은 코딩

DateTime dt = DateTime.ParseExact(Console.ReadLine(), "H m", null).AddMinutes(-45);
Console.Write("{0} {1}", dt.Hour, dt.Minute);

 

DateTime 정리

DateTime.ParseExact(dateString, format, provider)

 

dateString = "18/08/2015 06:30:15.006542"; 은 대충 이런  느낌.

 

Format

종류 format 의미 예시
연도 y 한 자리 연도 2          2
yy 두 자리 연도 22        02
yyyy 네 자리 연도 2022    2002
M 한 자리 또는 두 자리 월 숫자 8
MM 두 자리 월 숫자 08
MMM 월 이름 축약 Aug
MMMM 월 이름 August
d 일 숫자 5
dd 일 숫자 (한 자리 수는 앞에 0 붙음) 05
요일 ddd 요일 약자 Mon
dddd 요일 긴 이름 Monday
시간  h 12시간 형식 한자리 또는 두 자리 낮 12시 -> 12   오후 1시 -> 1
hh 12시간 형식 두 자리 낮 12시 -> 12   오후 1시 -> 01
H 24시간 형식 한 자리 또는 두 자리 오전 9시 -> 9   오후 9시 -> 21
HH 24시간 형식 두 자리 오전 9시 -> 09   오후 9시 -> 21
m 한 자리 또는 두 자리 분 6          30
mm 두 자리 분 06        30
s 한 자리 또는 두 자리 초 1          49
ss 두 자리 초 01        49
AM / PM t A 또는 P로 오전 오후 표시 A       P
tt AM 또는 PM으로 오전 오후 표시 AM    PM

 

날짜 관련 함수

DateTime dateString = DateTime.Now;

DateTime newDate = dateString.AddYears(int32); //년 추가
DateTime newDate = dateString.AddMonths(int32); //월 추가
DateTime newDate = dateString.AddDays(double); //일 추가 

DateTime newDate = dateString.AddHours(double);  //시간추가
DateTime newDate = dateString.AddMinutes(double); //분 추가
DateTime newDate = dateString.AddSeconds(double); //초 추가

참고)

 

C# DATETIME 사용법/ 날짜함수

DATE 함수 사용법입니다. 사용하면서 잊어버리기 쉬운데 다시 기억하기 귀찮아서 올립니다. DateTime.Now.ToString("MM/dd/yyyy") 04-03-2018 DateTime.Now.ToString("dddd, dd MMMM yyyy") 화요일, 03 4월 2018 D..

operagu.tistory.com

 

Provider

using System.Globalization;
CultureInfo provider = CultureInfo.InvariantCulture; //문화권 독립적(고정)인 CultureInfo를 가져온다.

 

댓글