๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
  • Welcome.
:: Python ๐Ÿšฉ/๊ธฐ์ดˆ

[Python] 19. ๋‹ฌ๋ ฅ๋งŒ๋“ค๊ธฐ -2-

by EunBird 2021. 3. 8.

ใ…กใ…กใ…กใ…กใ…ก

# ์ฃผ์„์€ ์ €๋ฒˆ์— ๋‹ค ์จ๋‘์—ˆ์œผ๋ฏ€๋กœ ํ•จ์ˆ˜์— ๋Œ€ํ•œ ์ฃผ์„์€ ์ƒ๋žตํ•˜๊ฒ ๋‹ค.

def isLeapYear(year):
    return year % 4 == 0 and year % 100 != 0 or year % 400 == 0

def lastDay(year, month):
    m = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
    m[1] = 29 if isLeapYear(year) else 28
    return m[month - 1]

def totalDay(year, month, day):
    total = (year - 1* 365 + (year - 1// - (year - 1// 100 + (year - 1) // 400
    for in range(1, month):
        total += lastDay(year, i)
    return total + day

def weekDay(year, month, day):
    return totalDay(year, month, day) % 7

ใ…กใ…กใ…ก

year, month = map(intinput('๋‹ฌ๋ ฅ์„ ์ถœ๋ ฅํ•  ๋…„, ์›”์„ ์ž…๋ ฅํ•˜์„ธ์š” : ').split())
print('=' * 28)
print('         {0:4d}๋…„{1:2d}์›”'.format(year, month))
print('=' * 28)
print(' ์ผ  ์›”  ํ™”  ์ˆ˜  ๋ชฉ  ๊ธˆ  ํ†  ')
print('=' * 28
# ์—ฌ๊ธฐ๊นŒ์ง„ ๋‹ฌ๋ ฅ์˜ ์œ—๋ถ€๋ถ„์ด๋‹ค.


for i in range(weekDay(year, month, 1)): 

# 1์ผ์ด ์ถœ๋ ฅ๋  ์š”์ผ์˜ ์œ„์น˜๋ฅผ ๋งž์ถ”๊ธฐ ์œ„ํ•ด์„œ 1์ผ์˜ ์š”์ผ๋งŒํผ ๋ฐ˜๋ณตํ•˜๋ฉฐ ๋นˆ์นธ์„ ์ถœ๋ ฅํ•œ๋‹ค. 
    print('    ', end = ''
#๋นˆ ์นธ์€ ๋ฐ˜๋ณต๋‹น 4์นธ์”ฉ ๋„์šด๋‹ค.

# 1์ผ ๋ถ€ํ„ฐ ๋‹ฌ๋ ฅ์„ ์ถœ๋ ฅํ•  ๋‹ฌ์˜ ๋งˆ์ง€๋ง‰ ๋‚ ์งœ๊นŒ์ง€ ๋ฐ˜๋ณตํ•˜๋ฉฐ ๋‹ฌ๋ ฅ์„ ์ถœ๋ ฅํ•œ๋‹ค.
for in range(1lastDay(year, month) + 1):
# i๊ฐ€ 1๋ถ€ํ„ฐ ํ•ด๋‹น ๋‹ฌ์˜ ๋งˆ์ง€๋ง‰ ๋‚ ์งœ์˜ ์ˆ˜๊นŒ์ง€ ๋ณ€ํ•˜๋Š” ๋™์•ˆ.
    print(' {0:2d} '.format(i), end = ''
   

    # ์ถœ๋ ฅํ•œ ๋‚ ์งœ(i)๊ฐ€ ํ† ์š”์ผ์ด๊ณ  ๊ทธ ๋‹ฌ์˜ ๋งˆ์ง€๋ง‰ ๋‚ ์งœ๊ฐ€ ์•„๋‹ˆ๋ฉด ์ค„์„ ๋ฐ”๊พผ๋‹ค.
    if weekDay(year, month, i) == 6 and != lastDay(year, month):
        print()

 

 

print('\n' + '=' * 28) # ๋‹ฌ๋ ฅ ํ•˜๋‹จ ๋ถ€๋ถ„.

 

ใ…กใ…กใ…กใ…กใ…ก

 

์ด์–ด์„œ.

728x90

๋Œ“๊ธ€