Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/perl
- use integer;
- %nama_bulan = (
- "jan" => 1, "feb" => 2, "mar" => 3, "apr" => 4,
- "may" => 5, "jun" => 6, "jul" => 7, "aug" => 8,
- "sep" => 9, "oct" => 10, "nov" => 11, "dec" => 12,
- );
- @bulan = ("",
- " Januari", " Februari", " Mac", " April",
- " May", " Jun", " Julai", " Ogos",
- "September", " Oktober", " November", " Disember"
- );
- @max_hari = (0,31,28,31,30,31,30,31,31,30,31,30,31);
- print "Sila masukkan bulan: ";
- $bulan_input = <>;
- if ($bulan_input =~ /^ *\d{1,2} *$/) {
- die "Bulan mesti diantara 1 dan 12!\n" unless ($bulan_input>=1 && $bulan_input<=12);
- } else {
- $bulan_input = $nama_bulan{lc(substr($bulan_input,0,3))};
- die "Nama bulan tidak tepat: $ARGV[0]!\n" unless defined($bulan_input);
- }
- print "Sila masukkan tahun: ";
- $tahun = <>;
- die "Tahun tidak tepat: $tahun!\n" unless $tahun =~ /^ *\d{4} *$/;
- $tahun = int($tahun);
- die "Tahun mesti lebih besar dari 0!\n" unless $tahun>0;
- print "\n\t$bulan[$bulan_input] $tahun\n\nSun Mon Tue Wed Thu Fri Sat\n";
- $max_hari[2] = 29 if ($tahun%400==0) || (($tahun%4==0) && ($tahun%100!=0));
- --$tahun;
- $st = 1 + $tahun*365 + $tahun/4 - $tahun/100 + $tahun/400;
- for ($i=1; $i<$bulan_input; ++$i) {
- $st += $max_hari[$i];
- }
- $st %= 7;
- for ($i=0; $i<$st; ++$i) {
- print " ";
- }
- for ($i=1; $i<=$max_hari[$bulan_input]; ++$i) {
- printf "%3d ", $i;
- print "\n" if ($st+$i)%7==0;
- }
- print "\n\n";
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement