Core Mvc

İki Boylam Arasındaki Şehirlere Ait Saat Farkını Bulan Core Mvc Uygulaması

Visual Studio 2022'yi kullanarak, iki boylam arasındaki küçük farklarda dakika hesabı yapılacak şekilde düzenlenmiş uygulamayı oluşturacağız. Saat farkını sadece 15 boylamlık farklarla değil, küçük farklar için de dakika olarak göstereceğiz.

Boylam farkı 15 dereceyi geçiyorsa, saat cinsinden fark hesaplanacak.

Boylam farkı 15 dereceyi geçmiyorsa, dakika cinsinden fark hesaplanacak.

Saat ve dakika cinsinden fark, kullanıcıya gösterilecek.

Visual Studio 2022 kullanarak yeni bir ASP.NET Core Empty projesi oluşturalım.

File > New > Project > ASP.NET Core Empty seçelim.

Projeye giriş yapalım. MVC projesi olması için gerekli tanımlamaları yapalım.

Yeni bir controller (denetleyici) oluşturalım. Bu controller, boylamlar arası saat farkını hesaplayacak ve kullanıcıya dakika veya saat olarak farkı gösterecek.

Controllers/HomeController.cs:

using Microsoft.AspNetCore.Mvc;

using BoylamSaatFarkiApp.Models;
 
namespace BoylamSaatFarkiApp.Controllers
{
    public class HomeController : Controller
    {
        // GET: Home/Index
        public IActionResult Index()
        {
            return View();
        }
 
        // POST: Home/Calculate
        [HttpPost]
        public IActionResult Calculate(BoylamSaatModel model)
        {
            if (ModelState.IsValid)
            {
                // Boylam farkını hesapla
                double fark = Math.Abs(model.Boylam1 - model.Boylam2);
 
                // Saat ve dakika hesaplaması
                if (fark >= 15)
                {
                    model.SaatFarki = fark / 15;
                    model.DakikaFarki = 0;
                }
                else
                {
                    model.SaatFarki = 0;
                    model.DakikaFarki = fark * 4;  // Boylam farkı < 15 için dakikayı hesapla
                }
            }
 
            return View("Index", model);
        }
    }
}

Boylam farkını hesaplamak için bir model sınıfı oluşturalım.

 
using System.ComponentModel.DataAnnotations;

namespace BoylamSaatFarkiApp.Models
{
    public class BoylamSaatModel
    {
        [Required(ErrorMessage = "Boylam1 alanı gereklidir.")]
        [Range(-180, 180, ErrorMessage = "Boylam1 -180 ile 180 arasında olmalıdır.")]
        public double Boylam1 { get; set; }

        [Required(ErrorMessage = "Boylam2 alanı gereklidir.")]
        [Range(-180, 180, ErrorMessage = "Boylam2 -180 ile 180 arasında olmalıdır.")]
        public double Boylam2 { get; set; }

        // SaatFarki ve DakikaFarki genellikle hesaplanan değerlerdir, input alınmıyorsa validasyon gerekmez
        public double SaatFarki { get; set; }
        public double DakikaFarki { get; set; }
    }
}

Kullanıcı arayüzünü oluşturacağız, burada kullanıcı boylamları girecek ve hesaplanan saat farkını veya dakika farkını görecek.

Views/Home/Index.cshtml:
@model BoylamSaatFarkiApp.Models.BoylamSaatModel

<!DOCTYPE html>
<html lang="tr">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Boylam Saat Farkı Hesaplama</title>
</head>
<body>
    <div style="padding: 20px;">
        <h2>Boylamlar Arası Saat ve Dakika Farkını Hesapla</h2>

        @* Tüm model hatalarını özet halinde göstermek için *@
        @Html.ValidationSummary(true, "", new { @style = "color:red;" })

        <form method="post" action="/Home/Calculate">
            <div>
                <label for="Boylam1">Boylam 1:</label>
                <input type="text" id="Boylam1" name="Boylam1" value="@Model.Boylam1" />
                @Html.ValidationMessageFor(m => m.Boylam1, "", new { @style = "color:red;" })
            </div>
            <div>
                <label for="Boylam2">Boylam 2:</label>
                <input type="text" id="Boylam2" name="Boylam2" value="@Model.Boylam2" />
                @Html.ValidationMessageFor(m => m.Boylam2, "", new { @style = "color:red;" })
            </div>
            <div>
                <button type="submit">Hesapla</button>
            </div>
        </form>

        @if (Model.SaatFarki > 0)
        {
            <h3>Boylamlar Arasındaki Saat Farkı: @Model.SaatFarki saat</h3>
        }
        @if (Model.DakikaFarki > 0)
        {
            <h3>Boylamlar Arasındaki Dakika Farkı: @Model.DakikaFarki dakika</h3>
        }
    </div>
</body>
</html>

HomeController'da, kullanıcı tarafından girilen boylamları alıyoruz ve boylam farkını hesaplıyoruz.

Eğer fark 15 derece veya daha büyükse, saat farkını hesaplıyoruz.
 
Eğer fark 15 dereceden küçükse, dakika farkını hesaplıyoruz.
 
Sonuçları ekranda gösteriyoruz.

Projeyi çalıştırarak kullanıcıdan iki boylam girmesini isteyebilir ve hesaplanan farkı dakika veya saat cinsinden ekranda görebilirsiniz.

Boylam 1: 30° Doğu
 
Boylam 2: 60° Doğu
 
Saat Farkı: (60 - 30) / 15 = 2 saat
 
Boylam 1: 30° Doğu
 
Boylam 2: 35° Doğu
 
Dakika Farkı: (35 - 30) * 4 = 20 dakika
 
Öne Çıkan Özellikler:

Model Binding: Kullanıcıdan gelen veriler, model üzerinden alınır ve işlem yapılır.

Veri Doğrulama: ModelState.IsValid kullanarak doğru verilerin girildiğini kontrol ederiz.
 
Saat ve Dakika Farkı: Hesaplanan fark, saat veya dakika cinsinden gösterilir.

Etiketler
core mvc area route controller model view 
İlgili Makaleler
Bir İç Açısı Verilen Düzgün Çokgenin Kenar Sayısını Bulan Uygulamayı Core Mvc Platformunda Yapınız
Girilen Bir Tarihi Görüntüleyen Programı Core Mvc Platformunda Area ve Route Tanımlayarak Tasarlama
Girilen Bir Saati Görüntüleyen Programı Core Mvc Platformunda Area ve Route Tanımlayarak Tasarlama
Girilen Bir Mevsimi Görüntüleyen Uygulamayı Areas ve Route Kullanarak Core Mvc Platformunda Yapma
Girilen Bir Yılı Görüntüleyen Uygulamayı Areas ve Route Kullanarak Core Mvc Platformunda Yapma
Girilen Bir Dağ Adını Görüntüleyen Programı Core Mvc Platformunda Area ve Route Tanımlayarak Tasarlama
Girilen Bir Kıta Adını Görüntüleyen Programı Core Mvc Platformunda Area ve Route Tanımlayarak Tasarlama
Girilen Bir Peygamber Adını Görüntüleyen Programı Core Mvc Platformunda Area ve Route Tanımlayarak Tasarlama
İki Boylam Arasındaki Şehirlere Ait Saat Farkını Bulan Core Mvc Uygulaması
Girilen Grad Değerinin Kaç Derece Olduğunu Bulan Uygulamayı Core Mvc Platformunda Yapınız
İki Açısı Verilen Bir Üçgende Üçüncü Açıyı Bulan Core MVC Uygulaması
Dikdörtgenler Prizmasının Hacmini Bulan Uygulamayı Core Mvc Platformunda Yapınız
Rastgele Seçilen N Adet Sayının Varyansını ve Standart Sapmasını Bulan Core Mvc Uygulaması
Girilen Bir Hicri Ay Adını Görüntüleyen Programı Core Mvc Platformunda Area ve Route Tanımlayarak Tasarlama
Atom Numarası ve Nötron Sayısı Verilen Bir Atomun Kütle Numarasını Bulan Core Mvc Uygulaması

Yorum Ekle
   
Kötü İyi