ক্রিসমাস কাউন্টডাউন


10

ছুটির দিনগুলিতে এবং ইতিমধ্যে কেউ শীতের থিম শুরু করেছিলেন ( তুষারমানুষ তৈরি করুন! ) আমি একটি নতুন চ্যালেঞ্জ প্রস্তাব করছি।

আপনি উপযুক্ত যে কোনও দ্ব্যর্থ বিন্যাসে ক্রিসমাসের (মধ্যরাত (00:00:00) 25 শে ডিসেম্বর) একা স্ট্যান্ড উইন্ডোতে (কনসোল নয়) অবধি দিন, ঘন্টা, মিনিট এবং সেকেন্ড মুদ্রণ করুন এবং এগুলি হিসাবে ক্রমাগত আপডেট করুন মান পরিবর্তন।

ইনপুট - কিছুই নয়, অবশ্যই সিস্টেমের সময়টি পড়তে হবে।

সংক্ষিপ্ত কোডটি জিতেছে :) স্ট্রিংগুলি "দিনগুলি", "ঘন্টা", "মিনিট", "সেকেন্ডস" এবং "ক্রিসমাস অবধি" নিখরচায় কোড। আপনি চাইলে এগুলিকেও স্বাদ দিতে পারেন। এগুলিকে স্বাদ দেওয়া খুব ভাল একটি আউটপুট উত্পাদন করার উদ্দেশ্যে is কোড বাঁচাতে যাদু নম্বর তৈরি করার উদ্দেশ্যে আপনি স্ট্রিংগুলির স্বাদ নিতে পারবেন না।


"ফ্লেভার আপ এগুলি" বলতে আপনার অর্থ কী? "দিন" হয় "ঘন্টা", "মিনিট", "সেকেন্ড", এবং "ক্রিসমাস পর্যন্ত" প্রয়োজনীয় আউটপুটে, বা শুধু বিনামূল্যে অপশন? এই স্ট্রিংগুলির "স্বাদ" কতটা বিনামূল্যে?
ইসজি

2
কনসোল নেই ?? কনসোল কোডার বিদ্রোহ! শুধু মজা করছি. চমৎকার ধারণা. শুভ ছুটির দিন.
ড্যারেন স্টোন

@ ইসজি তাদের প্রয়োজনীয় নয়। আমি কেবল তাদের বিনামূল্যে দিয়েছি যাতে লোকেরা যদি প্রকৃত সুন্দর আউটপুট তৈরি করতে চায় তবে তারা এতগুলি অক্ষর হারাবে না।
ক্রંચার

1
ক্রিসমাসের মধ্যরাত কি বড়দিনের শেষ হয় না?
ডেভিডসি

2
না, সাধারণত মধ্যরাত হল নতুন দিনের জিরোথ তাত্ক্ষণিক। "মিডনাইট ক্রিসমাস" হ'ল ক্রিসমাস শুরু হয়।
ব্রেডবক্স

উত্তর:


5

জুতো সহ রুবি , 96 - 33 = 63

Shoes.app{p=para
animate{p.text="0 days 0 hours 0 minutes #{1387951200-Time.new.to_f} seconds"}}

ঠিক আছে, আপনি কখনও বলেননি যে আমরা পারব না । ;)

স্ক্রিনশট

প্রতি ফ্রেম একবার আপডেট।

ম্যাজিক নম্বরটি 1387951200ক্রিসমাস - 25 ডিসেম্বর, 2013 00:00।

আমি যেখানে নম্বর পেয়েছি তার জন্য আইআরবি সেশনের নমুনা:

irb(main):211:0> "0 days 0 hours 0 minutes  seconds".size
=> 33
irb(main):212:0> Time.new(2013,12,25,00,00,00).to_i
=> 1387951200
irb(main):213:0>

Dec 25, 2013 00:00মধ্যরাত
ক্রંચার

@ ক্রাঙ্কার আহ, ঠিক আছে তো। তখন প্রচুর অকেজো পাঠ্য সম্পাদনা করা হচ্ছে
ডুরকনব

3

পাওয়ারশেল: 279

চরিত্রের গণনা কোনও ফ্রিবিজে বিবেচনা করে না। @ ক্রুনচার - দয়া করে সেই অনুযায়ী সামঞ্জস্য করুন।

Golfed

($t=($a='New-Object Windows.Forms')+".Label"|iex).Text=($i={((New-TimeSpan -en 12/25|Out-String)-split"`n")[2..6]});$t.Height=99;($x=iex $a".Form").Controls.Add($t);$x.Text='Time Until Christmas';($s=iex $a".Timer").add_tick({$t.Text=&$i;$x.Refresh()});$s.Start();$x.ShowDialog()

এটি কোড হিসাবে বা উইন্ডো হিসাবে সবচেয়ে সুন্দর জিনিস নয়, তবে এটি কার্যকর হয়।

একটি দুর্দান্ত কথা হ'ল এটি 2013 এর পক্ষে ঠিক ভাল নয় - এটি 1 জানুয়ারীর 00:00 থেকে 25 ডিসেম্বর 00:00 অবধি যে কোনও বছরে কাজ করবে।

সতর্কতা: উইন্ডোটি প্রতিক্রিয়াহীন হয়ে উঠতে পারে - এটি আপডেট অবিরত থাকবে, তবে আপনি এটি স্থানান্তর করতে বা বন্ধ করতে পারবেন না।

এখানে চিত্র বর্ণনা লিখুন

মন্তব্যে অন-গল্ফড

(
    # $t will be the label that displays our countdown clock on the form.
    $t=(
        # $a is used as a shortcut to address the Forms class later.
        $a='New-Object Windows.Forms'
    # Tack ".Label" onto the end with iex to finish making $t.
    )+".Label"|iex

# Set the text for our label.
).Text=(
    # $i will be a script block shortcut for later.
    $i={
        (
            (
                # Get the current "Time until Christmas", and output it as a string.
                New-TimeSpan -en 12/25|Out-String
            # Break the string into newline-delimeted array.
            )-split"`n"
        # Only output elements 2..6 - Days, Hours, Minutes, Seconds, Milliseconds.
        )[2..6]
    }
);

# Make sure the label is tall enough to show all the info.
$t.Height=99;

(
    # Use iex and $a as shortcut to make $x a "New-Object Windows.Forms.Form".
    $x=iex $a".Form"

# Add the label to the form.
).Controls.Add($t);

# Put 'Time Until Christmas' in the title bar for flavor.
$x.Text='Time Until Christmas';

(
    # Use iex and $a as shortcut to make $s a "New-Object Windows.Forms.Timer".
    $s=iex $a".Timer"

# Tell the timer what to do when it ticks.
).add_tick(
    {
        # Use the $i script block to update $t.Text.
        $t.Text=&$i;
        # Reload the form so the updated text displays.
        $x.Refresh()
    }
);

# Start the timer.
$s.Start();

# Show the form.
$x.ShowDialog();

# Variable cleanup - omit from golfed code.
rv t,a,x,i,s

3

গণিত 167 - 44 = 123

নীচে ক্রমাগত ক্রিসমাসের দিন শুরু হওয়া অবধি দিন, ঘন্টা, মিনিট এবং সেকেন্ড (হাজারতমে) প্রদর্শিত একটি সারণী আপডেট করা হয়। আমি কীভাবে বিনামূল্যে স্ট্রিংয়ের জন্য ছাড় গণনা করব তা নিশ্চিত নই।

Dynamic[Grid[Join[{{"Countdown", "until Christmas"}}, 
{DateDifference[Date[], {2013, 12, 25, 0, 0, 0}, {"Day", "Hour", "Minute", "Second"}], 
Clock[{1, 1}, 1]}[[1]] /. d_String :> d <> "s"]] ]

কাউন্টডাউন


একটি দ্রুত এবং নোংরা সমাধান : 104-19 = 85 অক্ষর

Dynamic@{DateDifference[Date[], {2013, 12, 25, 0, 0, 0}, {"Day", "Hour", "Minute", 
 "Second"}], Clock[{1, 1}, 1]}[[1]]

{{17, "দিন"}, {10, "ঘন্টা"}, {59, "মিনিট"},। 51.4011, "দ্বিতীয়"}


"Countdown to Christmas: Days"এই বিনামূল্যে হতে পারে, "Day", "Hour", "Minute", "Second"হিসাবে ভাল হতে পারবেন না।
ক্রંચার

স্পষ্টতার জন্য ধন্যবাদ। বিটিডব্লিউ, স্ট্রিংয়ের বাইরের স্পেসগুলি বাধ্যতামূলক নয়। এগুলি কেবলমাত্র সুসংগঠনের জন্য .োকানো হয়েছে।
ডেভিডসি

সংখ্যার সামনে কেন "-"? এটি বিভ্রান্তিকর হতে পারে এবং দেখে মনে হচ্ছে আমরা ইতিমধ্যে ক্রিসমাস পাস করেছি। ডেটডিফারেন্সে ক্রম পরিবর্তন করে সেগুলি স্থির করা হবে?
ক্রাঙ্কার

আমি এগুলি সরিয়ে ফরম্যাটিংয়ের উন্নতি করেছি, যোগ করা অক্ষরের মূল্য প্রদান করছি।
ডেভিডসি

2

পাইথন 136

আমি নিশ্চিত কেউ এটি আরও ভাল করতে পারে - আমি এর আগে টিন্টার কখনও ব্যবহার করি নি। বিশেষত আমি বাজি ধরতে পারি l.pack()এবং l["text"]তা এড়ানো যায়।

টাকা

Golfed

from Tkinter import*
from datetime import datetime as d
r=Tk()
l=Label(r)
l.pack()
while 1:
    l["text"]=d(2013,12,25)-d.now()
    r.update()

1

আর

জিডিজিটস প্যাকেজটির মাধ্যমে জিটিকে + ব্যবহার করার জন্য আর এর জন্য এখানে একটি সমাধান রয়েছে। আমি gwidgets / GTK + প্যাকেজটির সাথে মোটেও পরিচিত না হওয়ায় এটি বেশ কুৎসিত কোড।

কোড

কোডটি এখানে:

library(gWidgets)
options(guiToolkit="RGtk2")

# FUNCTION compute the hours minutes and seconds from time in seconds
fnHMS = function(timeInSec) {
  hours = timeInSec %/% 3600
  minutes = (timeInSec %% 3600) %/% 60
  seconds = (timeInSec %% 3600) %% 60
  return(list(hours = hours, minutes = minutes, seconds = seconds))
}

# test the function
fnHMS(1478843)

# container for the label and the button widget
christmasCountdownContainer = gwindow('Christmas Countdown!!', visible = TRUE)
christmasCountdownGroup = ggroup(horizontal = FALSE,
                                 container = christmasCountdownContainer)
ccWidget1 = glabel(sprintf('%4.0f hours, %4.0f minutes, %4.0f seconds till Christmas!!', 
                           (liHMS <- fnHMS(as.double(difftime(as.POSIXct(strptime('25-12-2013 00:00:01', 
                                      format = '%d-%m-%Y %H:%M:%S')),
                  Sys.time(), units = 'secs'))))[[1]], liHMS[[2]], liHMS[[3]]), 
                            container = christmasCountdownGroup)

ccWidget2 = gbutton("Update!", handler = function(h, ...) {
  # retrieve the old value of the ccWidget1
  oldValue = svalue(ccWidget1)
  liHMS = fnHMS(as.double(difftime(as.POSIXct(strptime('25-12-2013 00:00:01', 
                                                       format = '%d-%m-%Y %H:%M:%S')),
                                   Sys.time(), units = 'secs')))
  svalue(ccWidget1) = sprintf('%4.0f hours, %4.0f minutes, %4.0f seconds till Christmas!!',
                              liHMS[[1]], liHMS[[2]], liHMS[[3]])
  }, container = christmasCountdownGroup)

আউটপুট

আউটপুটটি দেখতে কেমন দেখাচ্ছে তা এখানে:

এখানে চিত্র বর্ণনা লিখুন


এটি ক্রমাগত আপডেট করতে হবে - এর অর্থ স্বয়ংক্রিয়ভাবে
ডুরকনব

1

ডায়ালগ এপিএল, 61

{⎕SM[1;]←1 1,⍨⊂⍕(1 4⍴2↓2013 12 24 23 59 59 1000-⎕TS)⍪'Days' 'Hours' 'Minutes' 'Seconds'⋄∇1}1

0

সি # 128

Golfed

using D=System.DateTime;using System.Windows.Forms;class C{static void Main(){MessageBox.Show(""+(new D(2013, 12, 25)-D.Now));}}

Ungolfed

using D=System.DateTime;
using System.Windows.Forms;
class C
{
    static void Main()
    {
        MessageBox.Show(""+(new D(2013,12,25)-D.Now));
    }
}

1
এটি কি নিরন্তর গণনা করে না? এছাড়াও, কোডগল্ফে আপনাকে স্বাগতম!
ক্রંચার

ধন্যবাদ, এখানে এসে খুশি! আমার ধারণা আমি ভুল বুঝেছি, এটি পুনরায় চালু হলেই এটি আপডেট হবে। আমি শীঘ্রই সম্পাদনা করব এবং পুনরায় পোস্ট করব
জেমস সি

0

পাইথন 2, 115

from datetime import datetime as d
n=d.now()
print str(24-n.day),str(23-n.hour),str(59-n.minute),str(60-n.second)

এটি নিউলাইনগুলিকে 2 টি অক্ষর হিসাবে গণনা করে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.