Selasa, 13 April 2010

Selisih Tanggal

Tanggal (penanggalan kalender) adalah sebuah sistem untuk memberi nama pada sebuah periode waktu (seperti hari sebagai contohnya). Nama-nama ini dikenal sebagai tanggal kalender. Tanggal ini bisa didasarkan dari gerakan-gerakan benda angkasa seperti matahari dan bulan. Kalender juga dapat mengacu kepada alat yang mengilustrasikan sistem tersebut (sebagai contoh, sebuah kalender dinding).

Bulan merupakan satuan unit waktu yang mengacu pada revolusi bulan pada bumi. Umumnya satu bulan adalah 30 atau 31 hari, namun untuk bulan Pebruari terdapat 28 hari dan 29 hari pada tahun kabisat.

Hari adalah sebuah unit waktu yang diperlukan bumi untuk berotasi pada porosnya sendiri. Satu hari terdiri dari siang dan malam. Tetapi hari tidak termasuk unit Standar Internasional (SI) tetapi tetap diterima untuk kegunaan yang berhubungan dengan SI.

Namun dalam percakapan untuk pernyataan setengah hari, umumnya bermakna kepada siang saja bukan malam. Selanjutnya untuk membedakan antara satu hari penuh dengan siang hari, biasa ditentukan dalam rentang waktu 24 jam.


Dalam definisi lain hari dapat juga digunakan kepada kumpulan unit (7 hari) dalam sepekan atau seminggu.

Berikut ini adalah contoh program untuk mencari selisih hari dari 2 buah tanggal, tanggal pertama adalah tanggal pada saat ini (program dijalankan / waktu sistem komputer) dan tanggal ke-2 adalah tanggal yang bisa ditentukan dengan memasukkan nilai tanggal yang diinginkan :


<head>
<title>Selisih Tanggal</title>
<style type="text/css">
<!--
#form{
margin-top:10px;
margin:auto;
font:normal 20px arial;
color:#00CC66;
width:350px;
height : 370px;
background:#99FF66;
border: 3px solid #009966;
}
#input{
margin:30px 0 10px 70px;
font:normal 15px calibri;
color:#666666;
}
body {
background-color: #DAE49C;
margin-top:5%;
}
fieldset {
border:solid 3px #ccc;
width:200px;
padding:20px;
margin:auto;
}
legend {
padding:0 15px 0 10px;
margin:auto;
font:bold .8em "Trebuchet MS", Verdana, Arial, Helvetica, sans-serif;
color:#666;
text-transform:uppercase;
border:1px solid #ccc;
background:#f4f4f4;
letter-spacing:2px
}
-->
</style>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<?php $halaman=$_GET[halaman];
$act=$_GET[act];
$bln=array(1=>"Januari","Februari","Maret","April","Mei","Juni","July","Agustus","September","Oktober","November","Desember");
$bulan = $bln[date("n")];
echo "<div id='form'>";

// Current date
echo "<h2 align='center'>Hari ini tanggal<br/>" .idate('d'). "-" .$bulan. "-" .idate('Y'). "</h2>
<hr style='color:#00CC66; border:double;' align='center' width='300'/>

<form action='?act=set' method='post' enctype='multipart/form-data' name='form1'>
<div id='input'>
Masukkan tanggal : <br/>
<select name=tgl>
<option value=Tgl selected='selected'>Tgl</option>
for($tgl=1; $tgl<=31; $tgl++){
$tgl_leng=strlen($tgl)
if ($tgl_leng==1){
$i="0".$tgl;
}else{
$i=$tgl;
}
echo "<option value=$i>$i</option>";
}
echo "</select>-
<select name=bln>
<option value=Bulanselected='selected'>Bulan</option>";
for($bulan=1; $bulan<=12; $bulan++){
echo "<option value=$bulan>$bln[$bulan]</option>";
}
echo "</select>-
<input type=text name=thn style='height:20px; width:60px; margin-bottom:10px'/>
<br/>
</div>
<fieldset>
<div align='center'>
<legend>Lihat selisih tanggal</legend>
<input type=submit value=Proses style='height:50px; margin-left:90px'>
</div>
</fieldset>
</form>
</div>";

//nah, ini itinya...
if ($act=='set'){
$tgl = idate('d');
$bln = idate('m');
$thn = idate('Y');
$tgl2 = $_POST['tgl'];
$bln2 = $_POST['bln'];
$thn2 = $_POST['thn'];
if((($bln2==4)||($bln2==6)||($bln2==9)||($bln2==11))&&($tgl2==31)){
echo "<h2 align='center'>Bulan " .$bln2." tidak memiliki " .$tgl2. " hari !!!</h2>";
}else if(($bln2==2)&&($thn2%4==0)&&($tgl2<=30)){
echo "<h2 align='center'>Bulan Pebruari " .$thn2. " tidak punya " .$tgl2. " hari !!!</h2>";
}else if(($bln2==2)&&($thn2%4!=0)&&($tgl2<=29)){
echo "<h2 align='center'>Bulan Pebruari " .$thn2. " tidak punya " .$tgl2. " hari !!!</h2>";
}else if(($bln2=='Bulan')||($tgl2=='Tgl')||(empty($thn2))){
echo "<h2 align='center'>Silahkan masukkan tanggal</h2>";
}else{
// menghitung JDN dari masing-masing tanggal
$jd1 = GregorianToJD($bln, $tgl, $thn);
$jd2 = GregorianToJD($bln2, $tgl2, $thn2);
// hitung selisih hari kedua tanggal
$bedaTgl = abs($jd2 - $jd1);
if ($bedaTgl != 0){
echo"<h2 align='center'>Selisih tanggal : " .$bedaTgl. " hari</h2>";
}else{
echo"<h2 align='center'>Tidak ada selisih waktu</h2>";
}
}
} ?>
</body>


Simpan file tersebut dalam format php. Jika berhasil, akan muncul tampilan seperti berikut ini :



Jika tanggal yang dimasukkan tidak sesuai dengan tanggal yang ada pada bulan yang bersangkutan, maka akan muncul tampilan seperti berikut ini :


Tampilan saat jumlah hari tidak sesuai (30 hari).


Tampilan jika tanggal 30 dimasukkan pada bulan Pebruari.


Tampilan jika tanggal 30 dimasukkan pada bulan Pebruari tahun kabisat.


Tampilan jika belum memasukkan tanggal.

Nilai selisih tanggal akan muncul jika tanggal ke-2 sudah dimasukkan dan tombol proses ditekan. Selisih tanggal akan muncul dan nilai selisih tanggal tidak terpengaruh oleh input tanggal ke-2, misalnya tanggal yang dimasukkan adalah tanggal yang sudah lewat dari tanggal pertama.



Apabila tanggal yang ke-2 yang dimasukkan sama dengan tanggal pertama, maka akan muncul pemberitahuan bahwa tanggal tidak memiliki selisih waktu.



Itulah contoh program sederhana yang dapat digunakan sebagai refrensi ilmu pemograman web yang ada, semoga bermanfaat untuk kita semua.

Keep Fighting Spirit On The Fire...

0 komentar: