반응형
원래도 집중력이 좋지않던 나는 백준을 풀다가 곧 내 생일을 맞아 내가 태어난지 얼마나 됐는지 궁금해졌다.
그래서 내가 태어난 일 수와 개월 수를 구현해봤다.
[ 코드 ]
using System.Globalization;
Console.Write("이름: ");
string name = Console.ReadLine();
Console.Write("생일 (예시 2000-01-01): ");
string birth = Console.ReadLine();
if (DateTime.TryParseExact(birth, "yyyy-MM-dd", null, DateTimeStyles.None, out DateTime birthDate))
{
TimeSpan age = DateTime.Now - birthDate;
int totalDays = (int)age.TotalDays;
int years = totalDays / 365;
int months = (int)Math.Floor((double)totalDays / 30.5); // 달이 대부분 30일에서 31일이고 대략 중간쯤 값인 30.5로 나눠준다.
Console.WriteLine($"-> {name}님은 현재까지 {totalDays}일을 살고있고,");
Console.WriteLine($" 약 {months}개월을 살고 있으며,");
Console.WriteLine($" {years}살 입니다.");
string dayOfWeek = birthDate.ToString("dddd");
Console.WriteLine($"-> {name}님이 태어난 날의 요일은 {dayOfWeek} 입니다.");
if (years < 1)
{
Console.WriteLine(" 아직 세포상태 입니다.");
}
else if (years < 40)
{
Console.WriteLine(" 어제 태어났나요?");
}
else
{
Console.WriteLine(" 쪼꼼 어른이네요! 건강하세요!");
}
}
else
{
Console.Write("올바른 날짜 형식으로 입력해주세요.");
}
[ 추가 ]
> DataTime은 날짜와 시간을 나타내는 구조체
https://learn.microsoft.com/ko-kr/dotnet/api/system.datetime?view=net-8.0
DateTime 구조체 (System)
일반적으로 날짜와 시간으로 표현된 시간의 한 순간을 나타냅니다.
learn.microsoft.com
> TimeSpan은 일(day), 시(hour), 분(minute), 초(second), 밀리초(millisecond) 등의 시간 단위를 포함하는 구조체
https://learn.microsoft.com/ko-kr/dotnet/api/system.timespan?view=net-8.0
TimeSpan 구조체 (System)
시간 간격을 나타냅니다.
learn.microsoft.com
[ 실행화면 ]
양심 어디갔는지 묻지도 따지지도 말기.
그러니 조금 나이 많다고 무서워하지말고 모두 하고싶은일 도전하기로 합시다....... !!!!!!!!!!!!!!!!!!!!!!!!
반응형
'Language > C#' 카테고리의 다른 글
[C#] 컴공이 생일 축하하는 방법 (ps. 콘솔 케이크) (2) | 2024.01.19 |
---|---|
[C#] 백준 5597번 과제 안 내신 분..? (차집합 Except 이용하기, 1로 만들어서 풀기) (0) | 2024.01.18 |
[C#] 백준 2438번, 2439번 별찍기 (0) | 2024.01.16 |
[C#] 백준 15552번 빠른 A+B (0) | 2024.01.14 |
[C#] 백준 25304번 영수증 (0) | 2024.01.14 |