A solution whithout imports for dates after 1700/1/1
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 :
Untuk video nya bisa lihat di bawah :
Semoga Bermanfaat.
Iklan
Bagikan ini:
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.