Cara menggunakan calendar.weekday python

A solution whithout imports for dates after 1700/1/1

Show
def weekDay(year, month, day):
    offset = [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334]
    week   = ['Sunday', 
              'Monday', 
              'Tuesday', 
              'Wednesday', 
              'Thursday',  
              'Friday', 
              'Saturday']
    afterFeb = 1
    if month > 2: afterFeb = 0
    aux = year - 1700 - afterFeb
    # dayOfWeek for 1700/1/1 = 5, Friday
    dayOfWeek  = 5
    # partial sum of days betweem current date and 1700/1/1
    dayOfWeek += (aux + afterFeb) * 365                  
    # leap year correction    
    dayOfWeek += aux / 4 - aux / 100 + (aux + 100) / 400     
    # sum monthly and day offsets
    dayOfWeek += offset[month - 1] + (day - 1)               
    dayOfWeek %= 7
    return dayOfWeek, week[dayOfWeek]

print weekDay(2013, 6, 15) == (6, 'Saturday')
print weekDay(1969, 7, 20) == (0, 'Sunday')
print weekDay(1945, 4, 30) == (1, 'Monday')
print weekDay(1900, 1, 1)  == (1, 'Monday')
print weekDay(1789, 7, 14) == (2, 'Tuesday')

Di Program Kalender ini kita bisa mengetahui Kalender Bulanan, Kalender Tahunan, dan Tahun Kabisat. Saya juga memasukkan program untuk Mengetahui Hari berdasarkan tanggal, bulan, dan tahun yang nanti kita inputkan

Disini saya menggunakan Pycharm dengan Python 2.7

Berikut Source codenya: Bisa dari Github atau liat di bawah

import calendar

#Menampilan Header Kalender
print "Kalender Header 3"
print (calendar.weekheader(3))
print " "
print "Kalender Header 2"
print (calendar.weekheader(2))
print " "

zz = int(input("Masukkan Tahun : "))
mm = int(input("Masukkan Bulan : "))

# Kalender Bulanan
print " "
print "Kalender Pada Bulan ke {} Tahun {} :".format(mm,zz)
print " "
print(calendar.month(zz,mm))


yy = int (input ("Masukkan Tahun : "))
# Kalender Tahunan
print(calendar.calendar(yy))

#Mengecek Apakah Merupakan Tahun Kabisat Atau Tidak
#Tahun Kabisat = 4 Tahun 1x Seperti 2012, 2016, 2020
#Bulan Februari Menjadi 29 Hari
print " "
print "Apakah Tahun {} Merupakan Tahun Kabisat : ".format(yy)
print (calendar.isleap(yy))
print " "

#Menentukan Hari Berdasarkan Tanggal,Bulan,Tahun
#Dimulai Dari Monday(Senin) = 0 - Sunday(Minggu)= 6
print "Program Menentukan Hari"
print " "
thn= int(input("Masukkan Tahun : "))
bln= int (input("Masukkan Bulan : "))
tgl= int(input("Masukkan Tanggal : "))
day_week_day= calendar.weekday(thn,bln,tgl)
print " "
if day_week_day == 0:
    print "Hari Pada Tanggal {} Bulan {} Tahun {} Adalah Senin".format(tgl,bln,thn)
if day_week_day == 1:
    print "Hari Pada Tanggal {} Bulan {} Tahun {} Adalah Selesa".format(tgl,bln,thn)
if day_week_day == 2:
    print "Hari Pada Tanggal {} Bulan {} Tahun {} Adalah Rabu".format(tgl,bln,thn)
if day_week_day == 3:
    print "Hari Pada Tanggal {} Bulan {} Tahun {} Adalah Kamis".format(tgl,bln,thn)
if day_week_day == 4:
    print "Hari Pada Tanggal {} Bulan {} Tahun {} Adalah Jumat".format(tgl,bln,thn)
if day_week_day == 5:
    print "Hari Pada Tanggal {} Bulan {} Tahun {} Adalah Sabtu".format(tgl,bln,thn)
if day_week_day == 6:
    print "Hari Pada Tanggal {} Bulan {} Tahun {} Adalah Minggu".format(tgl,bln,thn)

Output Program nanti seperti ini :

  • Cara menggunakan calendar.weekday python
  • Cara menggunakan calendar.weekday python
  • Cara menggunakan calendar.weekday python

Untuk video nya bisa lihat di bawah :

Semoga Bermanfaat.

Iklan

Bagikan ini:

  • Twitter
  • Facebook

Menyukai ini:

Suka Memuat...

Terkait

Mengembalikan hari yang tekait dengan sebuah tanggal. Hari diberikan sebagai bilangan bulat, yang berkisar dari 1 (Minggu) sampai 7 (Sabtu), secara default.

Sintaks

WEEKDAY(serial_number,[return_type])

Sintaks fungsi WEEKDAY memiliki argumen berikut:

  • Serial_number    Diperlukan. Nomor berurutan yang menunjukkan tanggal dari hari yang akan dicari. Tanggal harus dimasukkan dengan menggunakan fungsi DATE, atau sebagai hasil dari rumus atau fungsi lain. Contoh, gunakan DATE(2008,5,23) untuk tanggal 23 Mei 2008. Masalah bisa muncul jika tanggal dimasukkan sebagai teks.

  • Return_type    Opsional. Angka yang menentukan tipe nilai yang dikembalikan.

Return_type

Angka yang dikembalikan

1 atau dihilangkan

Angka 1 (Minggu) sampai 7 (Sabtu). Perilakunya sama seperti versi Microsoft Excel sebelumnya.

2

Angka 1 (Senin) sampai 7 (Minggu).

3

Angka 0 (Senin) sampai 6 (Minggu).

11

Angka 1 (Senin) sampai 7 (Minggu).

1.2

Angka 1 (Selasa) sampai 7 (Senin).

1,3

Angka 1 (Rabu) sampai 7 (Selasa).

14

Angka 1 (Kamis) sampai 7 (Rabu).

15

Angka 1 (Jumat) sampai 7 (Kamis).

16

Angka 1 (Sabtu) sampai 7 (Kamis).

17

Angka 1 (Minggu) sampai 7 (Sabtu).

Keterangan

  • Microsoft Excel menyimpan tanggal sebagai nomor seri berurutan sehingga bisa digunakan di dalam perhitungan. Secara default, 1 Januari 1900 adalah nomor seri 1, dan 1 Januari 2008 adalah nomor seri 39448 karena tanggal itu adalah 39.448 hari setelah 1 Januari 1900.

  • Jika nomor_seri di luar rentang untuk nilai basis tanggal saat ini, kesalahan #NUM! akan dikembalikan.

  • Jika return_type di luar rentang yang ditentukan dalam tabel di atas, kesalahan #NUM! akan dikembalikan.

Contoh

Salin contoh data di dalam tabel berikut ini dan tempel ke dalam sel A lembar kerja Excel yang baru. Agar rumus menunjukkan hasil, pilih datanya, tekan F2, lalu tekan Enter. Jika perlu, Anda bisa menyesuaikan lebar kolom untuk melihat semua data.