นับถอยหลัง 100 วัน


25

เป็นเรื่องปกติที่จะเริ่มนับถอยหลัง 100 วันก่อนเหตุการณ์อาจเป็นเพราะระบบฐาน 10 ของเรา ตัวอย่างของสิ่งนี้สามารถพบได้ทุกที่:

  • 100 วันก่อนวันเกิดของคุณ
  • 100 วันก่อนวันแต่งงาน
  • 100 วันก่อนการเลือกตั้ง
  • 100 วันจนกว่าเราจะสำเร็จการศึกษา
  • 100 วันจนกว่าเธอจะถึงกำหนด
  • 100 วันจนถึงฤดูกาลฟุตบอล
  • 100 วันจนกว่าคุณจะได้รับตรา Fanatic

คุณได้รับรูปภาพ ดูเหมือนว่าวันที่ 100 ก่อนเหตุการณ์จะเกิดขึ้นที่สองกับเหตุการณ์จริงเท่านั้น ดังนั้นสำหรับความท้าทายนี้ฉันจำเป็นต้องรู้ว่าวันที่จะเป็นอะไรใน 100 วันเพื่อให้ฉันสามารถกำหนดสิ่งที่ฉันควรเริ่มนับด้วย

อินพุต

ไม่มีอินพุต

เอาท์พุต

วันที่ 100 วันนับจากวันที่ปัจจุบันตามปฏิทินเกรกอเรียนมาตรฐาน(ตรวจสอบให้แน่ใจว่าบัญชีสำหรับ leap ปี) การส่งออกมีความยืดหยุ่นตราบเท่าที่รูปแบบวันที่เป็นมนุษย์อ่านสามารถ (เช่น2016-10-8, 10-8-16, [ 2016, 10, 8 ], 10/8/16 12:00:00 AM)

การชนะ

รหัสกอล์ฟ: รหัสสั้นที่สุดในหน่วยไบต์


ตัวอย่าง

100 วันนับจากวันนี้ (5 เมษายน 2017) คือวันศุกร์ที่ 14 กรกฎาคม 2017

Current                Future
-------                ------
01/01/2001 +100        04/11/2001
01/01/2004 +100        04/10/2004
01/01/1900 +100        04/11/1900
01/01/2000 +100        04/10/2000

07/04/2017 +100        10/12/2017
10/31/2017 +100        02/08/2018
12/25/2017 +100        04/04/2018

08/29/1941 +100        12/07/1941
06/03/2001 +100        09/11/2001

2
ฉันสามารถเพิ่มเวลาปัจจุบันไปยังเอาต์พุตได้หรือไม่?
ติตัส

1
@Titus no เพียงแค่วันที่ในอนาคต
NonlinearFruit

1
คำตอบส่วนใหญ่รวมถึงวันที่และเวลาในขณะนี้ฉันคิดว่าควรได้รับอนุญาต
GB

1
@GB เมื่อคุณส่งออกวันที่ในอนาคตรูปแบบจะยืดหยุ่น (อาจรวมถึงการประทับเวลา) ตราบใดที่มนุษย์อ่านได้ อย่างไรก็ตามเวลา / วันที่ปัจจุบันไม่เป็นที่ยอมรับ
NonlinearFruit

5
" เพราะระบบ bas 10 ของเรา " ไม่มีถ้าเรานับในไบนารีที่เราต้องการมีแนวโน้มนับลงจาก 100 - ยกเว้นว่าจะใช้เวลาเพียงสี่วันมากกว่าร้อย ...
Toby Speight

คำตอบ:


42

Excel, 10

=NOW()+100

สาธิต

enter image description here


1
สามารถใช้งานได้ใน Google ชีต
Okx

11
Excel เหมาะสำหรับการเขียนโค้ดที่เกี่ยวข้องกับการแยกวิเคราะห์วันที่เสมอ
Engineer Toast

2
มีชุดภาษาสำหรับ excel ที่ฟังก์ชัน NOW สะกดออกมาด้วยตัวอักษรเพียงสองตัวหรือไม่? ในกรณีนี้คุณสามารถบันทึก 1 ไบต์
iFreilicht

13
ใช่ดัตช์มี 'nu ()'
เสนอราคา

2
แม้ว่าต่อวันส่วนเท่านั้นคุณจะต้องใช้=TODAY()+100หรือ=TEXT(NOW()+100,"MM/dd/yyyy")
KyleMit

20

Bash, 17 16 15 14 13 ไบต์

date -d100day

ปรากฎว่าdateคำสั่งจะใช้อินพุตที่ยืดหยุ่นพอสมควรสำหรับการกำหนดเวลาแบบสัมพัทธ์ นอกจากนี้คุณยังสามารถทำสิ่งที่ชอบ1 year, 1 week ago, yesterdayฯลฯ มันเย็นสวย

-1 ไบต์โดยตระหนักว่า bash ไม่สนใจไวยากรณ์
-1 ไบต์เนื่องจากช่องว่างระหว่าง100และdayไม่จำเป็น
-1 ไบต์เพราะฉันไม่ต้องการราคาอีกต่อไปเพราะฉันไม่มีที่ว่างในสตริง
-1 ไบต์โดยลบช่องว่างออกหลัง-d(ขอบคุณ ASCII-only!)


ใหม่คำสั่งที่ชื่นชอบ +1
NonlinearFruit

@NonlinearFruit ฮะใช่มันอาจเป็นหนึ่งในคำสั่งที่ชื่นชอบ ขอบคุณ!
HyperNeutrino

คุณไม่ต้องการช่องว่างหลังจาก-d
ASCII เท่านั้นเท่านั้น

@ ASCII เท่านั้นโอ้โอเค ขอบคุณ!
HyperNeutrino

10

PowerShell ขนาด 10 ไบต์

(date)+1e2

ขอบคุณ ConnorLSW สำหรับเคล็ดลับ + 1e2

ดูเหมือนว่าคู่ ( 1e2เป็นสองเท่า) จะถูกเพิ่มเป็นวัน

รุ่นก่อนหน้า 12 ไบต์:

(date)+"100"

เห็นได้ชัดว่าคุณสามารถเพิ่มสตริงลงในวันที่ใน PowerShell สตริง"100"จะถูกแปลงเป็น 100 TimeSpanDays-


2
ตกลงไม่ต้องถามฉันว่าทำไม แต่ถึงแม้(date)+100ไม่ได้ทำงาน(date)+1e2ไม่ ... ผมคิดว่า1e2เป็นจริงdoubleในขณะที่100เป็นจำนวนจนกว่าจะมีการรวบรวมคือคุณจะไม่สามารถเรียก100.GetType()แต่คุณสามารถ1e2.GetType()- ว่า -2 และจะนำเราไป วาดด้วย Excel!
colsw

@ConnorLSW ถ้ามันช่วยหรือเพิ่มความสับสน100ถูกมองว่าเป็นการเพิ่ม 100 ติ๊กที่เป็นสตริงที่"100"ถูกนำมาเป็นวัน ทั้งสองเป็น PS ที่ถูกต้อง แต่มีเพียงสิ่งเดียวที่เราต้องการ
Matt

@Matt 1e6ยังคงเป็นตัวเลขและถูกเพิ่มเป็นวัน ๆ
colsw

นั่นเป็นเรื่องที่น่าสนใจ อาจจะมีอะไรเกิดขึ้นภายใต้ประทุนอีกครั้งซึ่งตัวเลขนั้นเกินขีด จำกัด .... ฉันไม่รู้
แมตต์

ฉันคิดว่ามันเกี่ยวข้องกับประเภท DATE แบบเก่าซึ่งเป็นเลขทศนิยม 8 ไบต์โดยมีจำนวนวันเพิ่มขึ้นเป็นจำนวนเต็ม ฉันเดาว่านั่นคือสิ่งที่ Excel ใช้
Danko Durbić


6

PHP, 28 ไบต์

<?=date(Y_m_d,time()+864e4);

รุ่นที่มนุษย์อ่านได้ 35 ไบต์:

<?=date(Y_m_d,strtotime("100day"));

เกือบจะอ่านได้ 34 ไบต์:

<?=date(Y_m_d,strtotime(1e2.day));

-4 ไบต์ถ้ายังพิมพ์เวลาที่จะได้รับการยอมรับ: แทนที่Y_m_dด้วยหรือrc

เป็นวันหยุดประจำชาติของฝรั่งเศสใน 100 วัน


ขีดเส้นใต้ทำให้ฉันทำ "ทำไมขีด, มันคงที่หรือไม่ไม่สตริง OH WAIT 'SPACES' !!" ฉลาด.
Martijn

@Martijn เปิดเครื่องE_NOTICEและคุณจะรู้ว่า: Y_m_dเป็นค่าคงที่ที่ไม่ได้กำหนดและ PHP จะใช้สตริง นี้ทำงานร่วมกับคำที่ถูกต้องใด ๆ (รวมทั้งชื่อฟังก์ชั่นทั้งหมด) นอกเหนือจากคำหลัก , ค่าคงที่ที่กำหนดไว้ล่วงหน้าและกรณีตายtrue, และfalse null
ติตัส

5

ทับทิมขนาด 16 ไบต์

p Time.now+864e4

ลองออนไลน์!


กำลังจะตอบคำถามนี้ดี แต่ผมได้รับผลลัพธ์ที่แตกต่างกันสำหรับ864e4และ8640000และผมค่อนข้างไม่ทราบว่าทำไม ฉันตำหนิ TIO แก้ไข: เมื่อคุณใช้pทั้งสองค่าจะให้ผลลัพธ์ที่ต่างกัน แต่เมื่อคุณใช้putsพวกเขาจะเหมือนกัน
หอยทาก _

ฉันไม่เข้าใจฉันได้ผลลัพธ์เดียวกันกับทั้งคู่ คุณสามารถโพสต์ตัวอย่างได้ไหม? อาจจะขึ้นอยู่กับสถานที่เกิดเหตุ
GB

p Time.now+864e4ใช้เวลาประมาณ 4 วันp Time.now+8640000ใน TIO ฉันลองหลายครั้ง อย่างไรก็ตามถ้าคุณใช้putsความแตกต่างนี้จะไม่มีอยู่ ฉันไม่รู้ว่าสถานที่ของฉันมีความสำคัญหรือไม่ US East น่าจะเป็นเรื่องปกติ: PI ฉันจะลองใช้มันบนพีซีของตัวเองเมื่อกลับถึงบ้าน
หอยทาก _

5

Javascript, 29 26 25 ไบต์

บันทึกแล้ว 3 ไบต์ด้วย @ ASCII เท่านั้น!

บันทึกแล้ว 1 ไบต์ขอบคุณ @JohanKarlsson

new Date(+new Date+864e7)

document.body.innerHTML=new Date(+new Date+864e7)


1
คุณสามารถใช้864e7แทน864*10e6
ASCII-only

1
คุณสามารถบันทึก 1 ไบต์โดยใช้+new DateแทนDate.now()
Johan Karlsson

1
นี่คือตัวอย่าง คุณต้องรวมconsole.log
mbomb007


4

เป็นกลุ่ม 27 ไบต์

:r!date "+\%F" -d"+100 day"

ลองออนไลน์!

ป้อนคำอธิบายรูปภาพที่นี่

แก้ไข: ลบถ่านพื้นที่ที่ไม่จำเป็นออก


2
หากคุณใช้ Linux dateสิ่งที่อยู่ในหน้านี้คือdate -d100dayไม่แน่ใจว่าจะช่วยได้หรือไม่
ASCII-only

ฉันทดสอบด้วย:r!date +\%F -d100dayสิ่งนี้ยังใช้งานได้ (อย่างน้อยในพีซีของฉัน (C)) แต่ก็เหมือนกับที่HyperNeutrinoใช้ในทุบตีอยู่แล้ว
12431234123412341234123

เอ่อคุณสามารถบันทึกไบต์โดยเพียงแค่กำจัดเป็นกลุ่มและทำในทุบตี
David Conrad

4

MATL , 9 ไบต์

Z'100+1XO

รูปแบบเอาต์พุตคือ15-Jul-2017(ซึ่งฉันหาอ่านได้มากที่สุด) เปลี่ยน1XOไปเพื่อให้ได้รูปแบบที่ใช้ในตัวอย่าง,2XO07/15/17

ลองออนไลน์!

คำอธิบาย

Z'      % Push current date and time as a serial date number
100+    % Add 100
1XO     % Convert to string with format 'dd-mmm-yyyy'. Implicitly display

4

SQL (Microsoft), 35 31 ไบต์

SELECT DATEADD(D,100,GETDATE())

คุณสามารถใช้dแทนและลบช่องว่างภายในDAY DATEADD
mbomb007

แม้ผมdไม่ทราบว่าคุณสามารถใช้ ฉันใช้ddหรือdayในทางปฏิบัติ ฉันแค่ลองมันแล้วก็ใช้งานได้
mbomb007

3

Java 8, 77 , 61 ไบต์

()->System.out.print(java.time.LocalDate.now().plusDays(100))

ลองออนไลน์!


มีเหตุผลที่คุณไม่รวมแผ่นสำเร็จรูปหรือไม่? (เช่น 'class A {public static...') สำหรับ Java ฉันเชื่อว่าจำเป็นสำหรับโปรแกรมแบบเต็ม ()->java.time.LocalDate.now().plusDays(100)คุณสามารถทำแลมบ์ดา
NonlinearFruit

ฉันมีสิ่งนั้นก่อนที่จะแก้ไขคำตอบของฉัน มันคือ 94 ไบต์พร้อมกับสำเร็จรูป ฉันใหม่กับการเล่นกอล์ฟกับจาวา ด้วยเหตุนี้ฉันจึงไม่แน่ใจว่าจะต้องรวมสิ่งนั้นด้วยหรือไม่!
กีรนาปราการะรัน

2
การส่ง (เว้นแต่จะระบุไว้เป็นอย่างอื่น) สามารถเป็นได้ทั้งโปรแกรม (สามารถเรียกใช้โดยล่ามบางคนโดยไม่มีการดัดแปลง) หรือฟังก์ชั่น
NonlinearFruit

3

C #, 103 97 ไบต์

ขอบคุณraznagulสำหรับการบันทึก 6 ไบต์!

using System;class P{static void Main(){Console.Write(DateTime.Now.AddDays(100).ToString("d"));}}

โปรแกรมเต็มรูปแบบที่อ่านวันที่ปัจจุบันเพิ่ม 100 วันและแสดงผลในM/d/YYYYรูปแบบ

คุณสามารถเปลี่ยนรูปแบบวันที่โดยเพิ่มอีกสองสามไบต์:

using System;class P{static void Main(){Console.Write(DateTime.Now.AddDays(100).ToString("d-M-yyyy"));}}

ในการกำจัดรหัสหม้อไอน้ำ - C # ไม่ทราบว่ามีขนาดกะทัดรัดมาก - สามารถใช้ฟังก์ชันที่ไม่ระบุชื่อได้:

C # lambda, 49 43 ไบต์

()=>DateTime.Now.AddDays(100).ToString("d")

โปรแกรมเต็มรูปแบบ:

using System;

class P
{
    static void Main()
    {
        Func<string> f = 
        ()=>DateTime.Now.AddDays(100).ToString("d");

        Console.WriteLine(f());
    }
}

สำหรับโปรแกรมเต็มรูปแบบฉันคิดว่าคุณสามารถเขียน System.DateTime.Now ... เพื่อหลีกเลี่ยง "ใช้ System;"
Taemyr

1
@Taemyr: Console.Writeนั่นจะเป็นอีกต่อไปในขณะที่เขายังต้องการมัน
raznagul

2
@adrianmp: คุณสามารถบันทึกไว้ได้ 6 ไบต์โดยใช้แทน.ToString("d") .ToShortDateString()
raznagul

3

Noodel ขนาด 8 ไบต์

]5@LaƇ⁺ƈ

ลองมัน:)


มันทำงานอย่างไร

]5@LaƇ⁺ƈ
]5@La    # The string "]5@La" gets pushed onto the stack which in base 98 represents 8,640,000,000.
     Ƈ   # Pushes an integer that represents the current time where highest resolution is milliseconds.
      ⁺  # Add the time and the string which will be interpreted as 8,640,000,000ms.
       ƈ # Convert the integer to human readable time.
         # Implicitly output to the screen.

<div id="noodel" code="]5@LaƇ⁺ƈ" input="" cols="80" rows="2"/>

<script src="https://tkellehe.github.io/noodel/noodel-latest.js"></script>
<script src="https://tkellehe.github.io/noodel/ppcg.min.js"></script>


อักขระƇเป็นอักขระยูนิโค้ด U + 0187 ซึ่งมีขนาดใหญ่เกินกว่าที่จะแสดงในหนึ่งไบต์ กันไปสำหรับƈ (U + 0188) ดังนั้นในขณะที่นี่คือ 8 ตัวอักษรความยาวไบต์ต่ำสุดคือ 10
iFreilicht

1
@iFreilicht, Noodelใช้การเข้ารหัสของตัวเอง ตัวแก้ไขทำทุกอย่างในUTF-16เพื่อให้มองเห็นได้ดีขึ้น แต่ได้รับการเข้ารหัสตามหน้ารหัสNoodelก่อนที่จะแยกวิเคราะห์
tkellehe

3

Mathematica, 26 21 ไบต์

-5 ไบต์ขอบคุณ @KiranLinsuain!

Today+Quantity@"100d"

หากรวมถึงเวลาที่อนุญาตเราสามารถบันทึกได้ 2 ไบต์:

Now+Quantity@"100d"

1
"จำนวนตอนนี้ + [[100d"] "" ลดลงเล็กน้อย แต่อาจไม่สามารถใช้ได้กับทุกรุ่น
kl

3

C, 87 46 44 ไบต์

บันทึกแล้ว 2 ไบต์ขอบคุณAlbert Renshaw

f(){time_t t=time(0)+864e4;puts(ctime(&t));}

ฉันรู้ว่าผลลัพธ์มีความยืดหยุ่นเพียงพอที่จะอนุญาตให้ใช้ในวันและเวลาดังนั้นจึงไม่จำเป็นต้องใช้localtimeหรือtmโครงสร้างเลย

คำตอบเก่า

f(){time_t t=time(0)+8640000;char b[9];strftime(b,9,"%d-%m-%y",localtime(&t));puts(b);}

ขึ้นอยู่กับคำตอบของ Khaled.Kแต่แทนที่จะยุ่งกับtmโครงสร้างเพิ่มจำนวนวินาทีเทียบเท่ากับ 100 วันโดยตรงกับtime_tค่า นอกจากนี้ยังพิมพ์เฉพาะวันที่โดยไม่มีเวลาหรือวันในสัปดาห์

ตามที่ควรเกิดขึ้นกับโปรแกรม golfed คำเตือนที่น่าเกลียดบางอย่างเกิดขึ้นจากการรวบรวม

ลองออนไลน์!

Ungolfed:

f(){
    // Current time + 100 days
    time_t t=time(0)+8640000;
    // Buffer for printing formatted time
    char b[9];
    // Print the time in format dd-mm-yy to buffer
    strftime(b,9,"%d-%m-%y",localtime(&t));
    // print buffer
    puts(b);
}

2
โกน 2 ไบต์ด้วยการแทนที่8640000ด้วย864e4
Albert Renshaw

2

JavaScript ขนาด 42 ไบต์

(d=new Date()).setDate(d.getDate()+100)&&d

setInterval(_=>document.body.innerHTML=(d=new Date()).setDate(d.getDate()+100)&&d,1000)


ฉันใช้คำตอบของคุณเป็นแรงบันดาลใจให้กับฉันcodegolf.stackexchange.com/questions/115436/100-day-countdown/… ;)
Thomas W

2

สูตร IBM / Lotus Notes ขนาด 29 ไบต์

@Adjust(@Today;0;0;100;0;0;0)

แต่น่าเสียดายที่@Adjustต้องต่อท้ายสำหรับที่ขาดหายไป0'shh:mm:ss

หากเราได้รับอนุญาตให้แสดงเวลาเช่นกันการเปลี่ยน@Todayเป็น@Nowจะประหยัด 2 ไบต์สำหรับ 27


2

JavaScript (ES6), 44 ไบต์

_=>new Date(Date.now()+864e7).toDateString()

25 ไบต์หากส่งคืนวันที่พร้อมเวลาเป็นที่ยอมรับ

_=>Date(Date.now()+864e7)


2

F # (53 ไบต์)

printf"%s"(DateTime.Now.AddDays(100.0).ToString("d"))

อย่าเห็นคำตอบ F # มากมายที่นี่ รุ่งโรจน์!
David Conrad

2

Swift 3, 39 bytes

print(Date(timeIntervalSinceNow:864E4))

import foundation;ฉันเถียงคุณไม่จำเป็นต้อง Swift ทำงานบน iOS และมีการนำเข้าอัตโนมัติที่นั่น
Albert Renshaw

ที่นี่ยังมีคำตอบ Swift ไม่มากเกินไปดังนั้นไม่แน่ใจว่าฉันทามติคืออะไร แต่ผมคิดว่าคุณมีจุดดีผมจะเอานำเข้า :)
แมตต์

@Albert Swift ยังทำงานบน Mac OS และ Linux แต่ฉันไม่ทราบว่าต้องใช้การนำเข้าหรือไม่
David Conrad

2

C, 120 113 ไบต์

#include <time.h>
f(){time_t t=time(0);struct tm*tm=localtime(&t);tm->tm_mday+=100;t=mktime(tm);printf("%s",ctime(&t));}

การสาธิตสด

#include <stdio.h>
#include <time.h>

void PrintDatePlus100days()
{
    // obtain current time
    time_t t = time( 0 );

    // convert to datetime struct
    struct tm *tm = localtime( &t );

    // add 100 days
    tm->tm_mday += 100;

    // convert to time_t
    t = mktime( tm );

    // print time in readable format
    puts( ctime( &t ) );
}

หากฉันไม่เข้าใจผิดคุณไม่จำเป็นต้องพิจารณาบัญชี#include ...สำเร็จรูปเมื่อส่งฟังก์ชั่น (เช่นคำตอบของ Java ไม่ต้องการimportในกรณีนี้)
Cássio Renan

@ CássioRenanใน Java คุณไม่จำเป็นที่จะนับการนำเข้าเริ่มต้นเหมือนjava.lang.*เช่นเดียวกับวิธีการที่เราจะไม่นับรวมstdio.hและstdlib.hใน C. แต่แม้ใน java คุณจะต้องพิจารณาทั้งการนำเข้าที่กำหนดเองหรือวางเส้นทางในชื่อชั้นเช่นjava.util.Date, และนั่นคือคะแนนของคุณ
Khaled.K

2
เหตุใดการใช้งานprintf()จึงputs()ไม่ทำงาน
12431234123412341234123

2

PowerShell, 23

(get-date).adddays(100)

นี่เป็นครั้งแรกที่ฉันได้ลองดังนั้นโปรดให้ข้อเสนอแนะที่สร้างสรรค์ ขอบคุณ!


2

R (REPL), 14 ไบต์

Sys.Date()+100

ลองบนIdeone


1
นี่คือตัวอย่าง รหัสของคุณต้องการผลลัพธ์ผลลัพธ์ไม่ว่าจะเป็นผลลัพธ์ของฟังก์ชันหรือไปที่ STDOUT เป็นโปรแกรมเต็มรูปแบบ
mbomb007

ขอให้เรายังคงอภิปรายนี้ในการแชท
mbomb007

@ mbomb007 ตอบ REPL จะได้รับอนุญาตแต่พวกเขากำลังพิจารณาแยกภาษา
เดนนิส

@Dennis ไม่ได้ถูกระบุว่าเป็น REPL มาก่อน
mbomb007

1

Python ขนาด 63 ไบต์

from datetime import*
print(datetime.now()+timedelta(days=100))

ทางออกที่ง่ายมากจริงๆ เนื่องจากdatetime.now()ผลลัพธ์เหมือนกันtypeกับผลลัพธ์timedeltaจึงเพิ่มทั้งสองเข้าด้วยกันอย่างมีความสุข


มันไม่จำเป็นต้องเป็นฟังก์ชั่น คุณสามารถลบlambda:และมันจะยังคงเป็นโปรแกรมเต็มรูปแบบ
NonlinearFruit

@NonlinearFruit ใช่ แต่printจะต้องมีการเพิ่มและนั่นทำให้มีจำนวนไบต์เท่ากัน

หากคุณใช้ Python 2 คุณสามารถลบเครื่องหมายวงเล็บprintเพื่อบันทึก 1 ไบต์
Dead Possum

days=เป็นตัวเลือกที่จะบันทึก 5 + 1 ไบต์ (python2 printวงเล็บ 's)
เฟลิ Nardi บาติสตา

ลงไปที่ 57 bytes:from datetime import*;print datetime.now()+timedelta(100)
Mr. Xcoder




โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.