Artık yıllarla ilgili hatalar

Yazar | Zheng Ziying

2020 burada, hepinize mutlu yıllar dilerim!

2020 artık bir yıl (Artık Yıl) ve artık yıl başarısız olacak. Sekiz yıl önce, 29 Şubat 2012'de Azure'dayken büyük bir sorun yaşadık:

https://azure.microsoft .com / en-us / blog / summary-of-windows-azure-service-disruption-on-feb-29th-2012 /

Yaygın yanlış anlamalar

1. Bir yıl her zaman 365 gündür

2. Şubat her zaman 28 gündür

3. Artık yıl, dört yılda bir

Aslında artık yıllar her dört yılda bir değildir. 2000 artık bir yıldır, ancak ne 1900 ne de 2100 artık bir yıldır.

Artık Yıl ile İlgili Hatalar Nerede Eğilimli?

1. Bir tarih değerine zaman kodunu ekleyin veya çıkarın. Özellikle 1 yıl veya 1 aylık kodu ekleyin veya çıkarın

2. Veritabanı sorgu sonuçlarına göre oluşturulan çeşitli raporlar ve simgeler, aylık ve yıllık istatistikler bir gün daha az olabilir

3. Sertifika / parola / anahtar / önbelleğin sona erme süresi beklenenden bir gün önce olabilir veya geçersiz bir sona erme süresi ayarlanmış olabilir

4. Sabit uzunluklu dizi. Örneğin, 365 uzunluğundaki bir dizi artık yıl için yeterli olmayabilir ve dizi sınırların dışında olabilir.

5. Takvim, tarih seçimi bileşenleri ve istemci tarafı giriş doğrulamasıyla ilgili kodlar gibi UI bileşenleri.

Artık yılın hangi günlerine özel dikkat gösterilmelidir?

31 Aralık 2019: Bu, artık yıldan önceki son gün. 2019'un son günü artı 365 gün, 2020'nin son günü değil, 2020'nin sondan bir önceki günü (yani 30 Aralık 2020) olacaktır.

1 Ocak 2020: Artık yılın ilk günü. Artık yılın ilk günü artı 365 gün, sonraki yılın 1 Ocak'ı değil, bu yıl 31 Aralık'tır.

31 Ocak 2020: Bu gün artı 28 gün, sonraki ayın (Şubat) son günü değil.

1 Şubat 2020: Bu gün artı 28 gün, sonraki ayın (Mart) ilk günü değil.

28 Şubat 2020: Bu 29 Şubat'tan önceki gün. Söz konusu kod, bu günü yanlışlıkla Şubat ayının son günü olarak değerlendirebilir ve 1 Mart'ı almak için 1 gün eklemeye çalışabilir. Ama aslında bu gün artı 1 gün 29 Şubat.

29 Şubat 2020: Bu, artık yılda fazladan bir gün. Kod Şubat ayının her zaman yalnızca 28 gün olduğunu düşünüyorsa, kodla ilgili çeşitli sorunlar olabilir, örneğin:

Giriş doğrulama komitesi, yasal bir girdinin (2020/2/29) yasa dışı olduğunu ve `` {yıl + 1, ay, gün} '' yöntemiyle 1 yıl eklemek veya çıkarmak yasadışı bir tarih oluşturacaktır.

1 Mart 2020: 29 Şubat'tan sonraki gün. 1 Mart'tan 28 gün çıkarırsanız 2 Şubat alırsınız (1 Şubat yerine); 365 günü çıkarırsanız 2 Mart 2019 alırsınız (beklenen Mart yerine) 1 inci).

31 Aralık 2020: Yılın 366. günü.

Kod yılın 366. gününü doğru şekilde işlemezse, sorunlara da neden olabilir. Örneğin, 31 Aralık 2008'de üçüncü taraf yazılımdaki bir sorun tüm Microsoft Zune cihazlarının kullanılamaz hale gelmesine neden oldu. Ayrıntılar için lütfen şu adrese bakın:

http: // www .gardiyan .com / teknoloji / blog / 2009 / jan / 01 / zune-firmware-error

Kod bir yılın her zaman 365 gün olduğunu varsayarsa ve sabit boyutu 365 olan bir dizi bildirirse, bu durumda dizi yılın 366. gününde sınırların dışında olabilir.

Dizi C / C ++ dilinde yazılan kodda sınırların dışında meydana gelirse, bellek taşması saldırı güvenlik açığına neden olabilir.

Artık saniye

Artık yıllara ek olarak artık saniye denen başka bir şey daha var. Ayrıntılar için lütfen şu adrese bakın:

https://en.wikipedia.org/wiki/Leap_second

Bununla birlikte, Alibaba ekonomisindeki öğrencilerin çoğu genellikle uygulama düzeyinde kodla iyi anlaştığından, günler, aylar ve yıllarla uğraşıyorlar, en çok saat ve dakikalara göre, artık saniyelerin üzerimizde nispeten az etkisi var. Artık saniye, GPS gibi yüksek zaman hassasiyeti gerektiren bazı sistemlerde daha büyük bir etkiye sahip olacaktır.

Bu makalenin küçük resmi: iconchan tarafından hazırlanmıştır

Yazar:

Zheng Ziying, güzel adıyla Güney Kapısı, şimdiki konumu karınca Jinfu International Business Group Kalite ve Teknoloji Risk Departmanı Kıdemli Direktörü. Şanghay Jiaotong Üniversitesi Bilgisayar Bilimleri Bölümü'nden mezun olduktan sonra Microsoft'a katıldı, 2018'de katıldı karınca Altın giysiler. 18 yıldır yazılım geliştirme ile uğraşan çalışmalarının odak noktası temelde test, kalite ve mühendislik etkinliği etrafında dönüyor.

Derin öğrenme hala bu şekilde öğrenebilir
önceki
Douyin'in denizaşırı seyahatinin başarısının ardında: buz ve ateş
Sonraki
GitHub ilk on JavaScript açık kaynak projesi
268,4 milyarın arkasındaki sanallaştırma teknolojisi: Double 11 All on Shenlong | Çin'in BT teknolojisinin gelişimi hakkında soruşturma
% 11.37! ABD hisse senetleri son 100 yılda epik bir fırlama yaşadı.
Gelen yolcuların% 100 beyanı ve nükleik asit testi, Shenzhen Havaalanı, denizaşırı salgınların ithalatını kesinlikle engelliyor
Uygun yüklemeyi sağlamak için tek seferde tek dezenfeksiyon
İşletmeleri "yeniden başlatmanın" acısı ve zorluğu ile yüzleşmek
Ciddi bir hastalıktan önceki 4 ana belirti, vücuttaki bu değişiklikler, kansere, felce ve ani ölüme karşı dikkatli olun.
Kalbini ısıt! 16 gün içinde, Zichuan "mobil berber" 500'den fazla önleme ve kontrol personeline gönüllü saç kesimi sağladı.
Binzhou Kültür Turizmi, operasyonlarla mücadele "dört ilerlemeye" yardımcı olmayı tam olarak garanti ediyor
"Zamanın iş fırsatlarını kavrayın ve trendde parlaklık yaratın" "Akıllı Şehir" medya toplantısı düzenlendi
Topluluk propagandası çatıda yayına başlamak için "5G silahı" bulut hoparlörü kullanıyor
Çin Bilimler Akademisi, Mulanın dil sahtekarlığına yanıt verdi: parti işini askıya aldı; Çinin en büyük 100 yazılım işi geliri: Huawei art arda 18. yılı kazandı; Ionic 5.0.0-beta.5 yayınlandı | Gee
To Top